Vicente Del Bosque's side were punished for a slow start as Chile raced into a 2-0 lead thanks to goals from Mauricio Isla and Eduardo Vargas, but the introduction of Andres Iniesta at half-time reinvigorated the Spanish midfield.
Within nine minutes the Barcelona man had pulled a goal back and it was his pass that allowed fellow substitute Fabregas to level the scores with 20 minutes remaining. Fabregas then scored the winner in stoppage time, converting the rebound after his penalty had been saved by Claudio Bravo.
The win comes as the perfect boost to a Spain squad deprived of several key players as they prepare to host Liechtenstein in a UEFA EURO 2012 qualifier on Tuesday. Raul Albiol and Athletic Bilbao midfielder Javi Martinez started in the heart of the defence, and the makeshift duo were given a hard time as Chile came racing out of the blocks.
Isla beat Iker Casillas with a well-hit cross-shot and, after David Villa and David Silva both had chances for Spain, Chile doubled their lead on 20 minutes when Alexis Sanchez supplied Vargas, who finished coolly past Casillas.
Only a fine Casillas save prevented Jean Beausejour from adding another, and Spain were lucky to be just two behind at the break.
Pepe Reina, Pedro and Iniesta all came on at the restart, and the Barcelona midfielder sparked the fightback when he sent a measured strike into Bravo's bottom-right corner to score his tenth international goal.
Iniesta's first-time pass was then prodded home by Fabregas for the equaliser and Chile cracked as Spain turned the screw, with Pablo Contreras being shown a straight red card for a crude tackle on Santi Cazorla.
Spain then won a penalty in the last minute when Alvaro Arbeloa went down inside the area and Jorge Valdivia was subsequently shown a red card for his protests. Fabregas' penalty was touched on to the post by Bravo, but the Barcelona man touched home the rebound to seal the win for Spain.