When teammate Geraint Thomas, previously third overall and leading Sky in Catalunya, cracked towards the summit of the eight kilometre climb, Froome, previously fifth, knew that he should fight for his own chances.
The Sky rider shadowed Alejandro Valverde (Movistar) and then Alberto Contador (Trek-Segafredo) in the closing kilometres as a leading quartet formed along with Valverde's teammate Marc Soler, then Valverde opened up a gap to go it alone.
Froome came across the line in second just ahead of Contador in what constitutes his best result to date in the Volta a Catalunya, a race where he has taken a sixth and an eighth overall in 2016 and 2014 but never performed so strongly on a high mountain stage. Thomas finished 14th on the stage, and dropped to seventh on GC.
"It was a tough day," Froome, now second at 21 seconds with two days remaining, told Cyclingnews after the stage. "The plan was to move G [Thomas] up on GC, but a couple of kilometres from the top, when Contador and Valverde put in a big move along with Soler - who did an amazing ride - they put in a move and I followed that and G said at that point 'don't wait, don't wait, go on.'
"So I wasn't really expecting to do that kind of a ride today, my first big mountain top finish at WorldTour level this year. I'm really happy with that and I think I can take a lot of confidence away from that and build on that."
Now second overall, Froome was markedly cautious whether he could do better than hold onto the runner's up spot on the provisional podium on the two remaining stages, although he did not rule it out totally.
"You never know what could happen, particularly with some rough weather maybe coming up," he said. "But it's going to be very hard to beat Valverde at this point. He's looking in great shape.
“On a personal level, I'm very pleased with that, just as my first race back. As a team we shouldn't be satisfied with second or a podium spot. We're always racing to win, but for me personally, as a first mountain top finish, I'm happy with that."
Froome found himself all but crashing late on in the stage on the flat approach to Tortosa, but was uninjured and could stay upright.
"I dropped a piece of clothing out of my back into the brakes of my back wheel, so my back wheel locked up at 50 kilometres an hour, and luckily I managed to stay upright. My apologies to anyone who was caught up in that and did go down, I completely take responsibility for it. I'm very sorry if anybody got hurt."
According to race radio, Rafal Majka (Bora-Hansgrohe) was the other rider affected, but initial reports say he was not injured and, like Froome, got back into the peloton relatively quickly. Majka finished 13th, 1:17 down.