Froome and Sky team-mate Geraint Thomas fended off attacks from Alberto Contador (Tinkoff-Saxo), Nairo Quintana (Movistar) and defending champion Vincenzo Nibali (Astana) on the final ascent to Plateau de Beille.
The stage win was taken by Joaquim Rodriguez (Katusha) who put in a perfeclty-timed move on the final ascent having spent the day in an escape group.
Danish rider Jakob Fuglsang (Astana) had attempted to chase down Rodriguez, but simply could not match the Spaniard’s pace up the climb and had to settle for second.
After struggling the previous two days, Frenchman Romain Bardet (Ag2r) looked to be back on form to take third on the stage.
The 2015 Tour de France now moves away from the Pyrenees on Friday, with 198.5km stage 13 from Muret to Rodez. Its hilly finale may play into the hands of the likes of Peter Sagan (Tinkoff-Saxo), who despite wearing the green jersey of points classification leader has yet to win a stage.