Against Portugal, the Swiss will be looking to reach the quarter-finals for the first time since hosting the competition in 1954.
Switzerland and Serbia met in the group stage for the second straight World Cup. The Swiss also won in 2018 after a last-minute goal from Shaqiri.
This time, the Chicago Fire forward put his team ahead in the 20th minute to become the first Swiss player to score at three World Cups.
Born in Kosovo, which declared independence from Serbia in 2008, Shaqiri ran straight to the opposing fans to celebrate, putting his finger to his lips after being taunted by that section of the crowd.
But Serbia supporters soon had something to celebrate with Mitrovic beating Manuel Akanji to head in a 26th-minute equaliser. Vlahovic turned in the box and sent a low shot into the net to put Serbia in front in the 35th.
Embolo evened the score again when he turned in Silvan Widmer’s cross just before the break.
By the time the clock ticked to 45 minutes, Serbia coach Dragan Stojković slouched in the dugout, his face pale and glistening with sweat.
It only got worse at the beginning of the second half.