Froome, who is bidding to become only the third rider to win La Vuelta and the Tour de France in the same year, crossed the line 31 seconds down on the Polish rider after the 175km stage.
Miguel Angel Lopez (Astana) joined him before going on alone for his second stage win of the race.
He now leads the Italian Bahrain-Merida rider by one minute and one second.
Froome, once again helped to a strong finish by Team Sky team-mates Wout Poels and Mikel Nieve, finished fifth, with Nibali seventh.
"I feel really great".
"I'm delighted to have won in Calar Alto and here", said Lopez.More news: Alvaro Morata Doesn't Think Much Of 'Sloppy' Premier League Defenders
More news: Kenya: Supreme court orders fresh elections to be held in 60 days
More news: Denny Hamlin wins at Darlington; Martin Truex Jr. clinches top seed
Saturday's stage was the first of two back-to-back summit finishes which will have a big say in whether Froome succeeds in becoming the first rider in 39 years to win the Tour de France and La Vuelta in the same year.
Lopez eventually triumphed by 36secs from Ilnur Zakarin [Katusha-Alpecin], with Wilco Kelderman a further nine seconds behind, then Esteban Chaves [Orica-Scott] and Froome at 47secs. Niki Terpstra drove the pace with 3 kilometres to go, as the race's main favourites made it into the "same time zone", and he pulled off to let Bob Jungels drive the field.
Claiming day-to-day as the main rival of the British, Nibali has whittled away 4 seconds bonus that will allow him to come back at 55 seconds of the red jersey in the general classification.
Sunday's 15th stage sees the race cover 129km from Alcala la Real to Sierra Nevada before Monday's rest day.
"I'm not happy because I win, I'm happy for my teammates because today we did a very good job and the team all the time trusted me".
The three-week race ends in Madrid on September 10.