Cameroon hit back from two goals down to secure a 3-3 draw with Serbia that preserves both sides' chances of advancing to the World Cup round of 16.

The Indomitable Lions, with regular goalkeeper Andre Onana reportedly on his way home after a falling out with coach Rigobert Song, scored first through Jean-Charles Castelletto only for Serbia to seize control through goals from Strahinja Pavlovic, Sergej Milinkovic-Savic and Aleksandar Mitrovic.

It seemed Dragan Stojkovic's men were cruising but they were stung by two goals in three second-half minutes, substitute Vincent Aboubakar's clever finish reducing the arrears before Eric Choupo-Moting brought Cameroon level.

Serbia bossed the bulk of the first half but had to wait until just before half-time to make their superiority count in the Group G clash at Al Janoub Stadium on Monday.

Mitrovic fired a left-footed strike against the post in the sixth minute following a neat one-two with Dusan Tadic and, six minutes later, came close again by shooting wide from close range after the ball bobbled around the Cameroon box.

Serbia were made to pay for his profligacy when Cameroon took the lead approaching the half-hour mark.

Pierre Kunde whipped in a corner from the left that was flicked on by Nicolas Nkoulou and Castelletto tapped in at the far post.

Cameroon could have doubled their advantage after 43 minutes but Kunde fired straight at goalkeeper Vanja Milinkovic-Savic when clean through before slicing the rebound horribly wide.

It was to prove a critical moment as Serbia turned the game around before the break.

First, Pavlovic headed in Tadic’s floated free-kick before Sergej Milinkovic-Savic drove home from the edge of the box, although Onana's deputy Devis Epassy should have done better.

Mitrovic got the goal his all-round display deserved eight minutes into the second half.

Lovely interplay from Filip Kostic and Sergej Milinkovic-Savic enabled Andrija Zivkovic to find space on the right side of the area and his cut-back was perfect for Mitrovic to tap into an empty net.

Cameroon appeared to be beaten but the 55th-minute introduction of Aboubakar turned the game on its head.

The Al Nassr striker made it 3-2 after 64 minutes, running on to Castelletto's through ball before producing an impudent scoop over Serbia goalkeeper Vanja Milinkovic-Savic - the goal given after a VAR check.

He then turned provider two minutes later, escaping down the right before crossing for Choupo-Moting to fire in.

Mitrovic could have clinched it but shot straight at Epassy.