Lazio midfielder Sergej Milinkovic-Savic pulled the strings and his effort wrong-footed the goalkeeper to put his country into the lead after Strahinja Pavlović's equaliser.
Advertisement
It was a deserved reward after Cameroon had held the lead for much of the first period.
The African side had taken the lead earlier in the half thanks to Jean-Charles Castelletto's well-taken effort, however it was Serbia who caused more of the problems.
Advertisement
With Devis Epassy replacing the dropped Andre Onana, Cameroon looked vulnerable and were torn apart in a frantic end to the first half as Serbia showed their quality.
However Milinkovic-Savic wasn't done yet as he choreagraphed Serbia's third just minutes into the second half as Fulham star Aleksandar Mitrovic converted as Cameroon continued to crumble.
While Serbia looked dominant, an inspired substitution changed the game for the African nation.
Advertisement
Vincent Aboubakar was introduced after 55 minutes and bagged a goal and an assist in just 11 second-half minutes to earn a 3-3 draw for Cameroon, keeping their hopes of progressing to the next round alive.