Cameroon kept their hopes of making the last 16 of the World Cup alive on Monday after fighting back from two goals down to draw a thrilling Group G encounter with Serbia 3-3.
Rigobert Song's team looked almost dead and buried after goals from Strahinja Pavlovic, Sergej Milinkovic-Savic and Aleksandar Mitrovic gave Serbia a 3-1 lead early in the second half.
But substitute Vincent Aboubakar and Eric Maxim Choupo-Moting snatched a draw with two quick-fire strikes just after the hour mark to leave both Cameroon and Serbia on a single point, two behind group leaders Brazil and Switzerland.
Had they lost, Cameroon would have been relying on the Swiss beating Brazil in order to not be eliminated with a game to spare, but instead the west Africans still have a chance of getting out of the group stage for the first time since 1990.
Cameroon have a tough task ahead as they play Brazil in their final match, which according to reports they will play without first-choice goalkeeper Andre Onana who was dropped from the matchday squad just hours before kick-off following an unspecified disciplinary issue.
Media reports suggest that Onana has been sent home from the World Cup after a disagreement with Song, but that pre-match turmoil didn't stop Cameroon putting in a fighting display against a Serbia team who probably deserved to win on the balance of play.
Exciting feature: Check out news exactly for YOU ➡️ find "Recommended for you" block and enjoy!
Mitrovic was almost invisible in Serbia's defeat to Brazil but here he was involved from kick-off, the Fulham forward unlucky not to give Serbia the lead in the 11th minute when he crashed a shot off the post from a tight angle following a neat exchange of passes with Dusan Tadic.
But Mitrovic only had himself to blame for not opening the scoring six minutes later, shanking an awful first-time finish wide when, after a mix up in the Cameroon defence, the ball dropped at his feet with only Onana's replacement Devis Epassy to beat.
And Castelletto punished the Serbs for Mitrovic's miss in the 29th minute with the simplest of finishes after ghosting in at the back post to meet Nicolas Nkoulou's flick-on at a corner.
Pierre Kunde then passed up a golden opportunity to double Cameroon's lead in the 43rd minute when he first shot straight at goalkeeper Vanja Milinkovic-Savic and then smashed the rebound wide.
It was Cameroon's turn to be undone at a set-piece as the half crept into first-half stoppage time when Pavlovic brilliantly headed home Dusan Tadic's floated free-kick.
The Serbs' tails were up and Sergej Milinkovic-Savic flipped the match on its head two minutes later with a superb left-footed finish after Andre-Frank Zambo Anguissa sloppily gave the ball away just outside his own penalty area.
Mitrovic finally had the goal his strong display deserved seven minutes after the break, tapping in Andrija Zivkovic's pass unopposed at the end of beautiful move guided by Milinkovic-Savic and Tadic.
The match looked over but from nowhere Cameroon sprung back into life thanks to Aboubakar's odd goal.
The Al Nassr forward raced through onto Castelletto's launched pass over the top and scooped an improbable finish over the Serbia 'keeper, beaming with delight after his goal was awarded following a VAR check.
Aboubakar's pace caused Serbia all kinds of problems and he laid on Choupo-Moting's leveller, bursting down the right and laying on a simple finish for the Bayern Munich forward which sparked wild celebrations on the pitch and in the stands.
Neither side could find a winner in an end-to-end finish to the game and their bids to make the knockouts will go down to the final game.