Obwohl Petrow für die Saison 2012 einen Vertrag mit dem Renault-Team, das ab dieser Saison unter der Bezeichnung "Lotus F1 Team" an den Start ging, besaß, wurde er Anfang Dezember 2011 entlassen und durch Romain Grosjean ersetzt. Petrow wechselte zu Caterham, wo er Mitte Februar als Pilot vorgestellt wurde. Dort löste er Jarno Trulli ab, der ursprünglich über einen Vertrag für die Saison 2012 mit dem Rennstall verfügte. Nachdem er im ersten Rennen ausschied, erreichte er beim Großen Preis von Malaysia den 16. Platz. Beim Großen Preis von Europa lag Petrow zwischenzeitlich in den Punkterängen und erzielte mit einem 13. Platz seine bis dahin beste Saisonplatzierung. Beim Großen Preis von Großbritannien ging er aufgrund technischer Probleme in der Runde in die Startaufstellung nicht an den Start. Beim letzten Saisonrennen in Brasilien erzielte er mit einem elften Platz seine beste Saisonplatzierung. Damit wurde Petrow zum bestplatzierten Piloten, der punktelos blieb. Am Saisonende belegte er den 19. Platz in der Fahrerwertung.