Match ends, Serbia 1, Switzerland 2.
Switzerland took a huge step towards the last 16 of the World Cup as Xherdan Shaqiri scored a brilliant solo 90th-minute winner against Serbia.
The Stoke City player collected the ball near the halfway line before dribbling away from the defence and slotting past Serbia goalkeeper Vladimir Stojkovic.
Granit Xhaka had scored a superb equaliser for Switzerland after Aleksandar Mitrovic put Serbia in front with a header in the fifth minute.
Serbia, who had a strong claim for a second-half penalty turned down, had dominated the first half, knowing a win would have confirmed their place in the knockout stages.
Switzerland are now level with Brazil on four points at the top of Group E - but in second because of an inferior goal difference.
They will qualify for the last 16 with a draw against Costa Rica, who have already been eliminated, in their final game.
If Switzerland win, Serbia must beat Brazil in their third match to progress.
Second-half performance earns thrilling win
Switzerland had been outplayed in the first half as they struggled to create going forward and seemed unable to contain constant Serbia attacks.
Striker Haris Seferovic was substituted at half-time having had just five touches and that move seemed to spring the Swiss into life.
Xhaka drove a powerful strike from the edge of the box past the stranded Stojkovic to equalise in the 52nd minute and Shaqiri hit the post with a curling effort from the corner of the box soon afterwards.
Shaqiri was far more influential in the second half - capitalising on poor defending for the winning goal when Serbia left themselves exposed at the back as they pushed for a winner of their own.
The forward was left one on one with Dusko Tosic on the halfway line and he was too quick for the Serbia centre-back after Mario Gavranovic found him with a through ball.
Emotional night for Swiss match-winners
Shaqiri and Xhaka celebrated their goals wildly - strikes made even more emotional as both are of Kosovan descent.
After the break-up of the former Yugoslavia in the 1990s, Serbia responded to separatist pressure from Kosovo by launching a brutal crackdown on the territory's Albanian population, which ended with Nato military intervention in 1999 - while the country became independent from Serbia in 2008.
Xhaka's father spent three and a half years as a political prisoner in Yugoslavia, while Shaqiri was born in Yugoslavia before emigrating to Switzerland as a child.
Both appeared to make an eagle gesture with their hands as they celebrated, a symbol of the two-headed eagle on the Albanian flag.
Shaqiri also sported a Kosovan flag, stitched onto his boots, and was booed by the Serbia fans when his name was read out before kick-off.
Asked about his players' celebrations, Switzerland's Bosnia-born manager Vladimir Petkovic said: "You should never mix football and politics. It's important to be a fan and to give respect.
"It was a wonderful atmosphere and that's what support should be about."
Serbia fall flat after impressive opening
Serbia had impressed in their opening-round win over Costa Rica, and in the first half against Switzerland they produced one of the most potent attacking displays seen so far in Russia.
Mladen Krstajic's side were led by the impressive Mitrovic whose goal was his 18th in 26 games for club and country in 2018, having helped Fulham achieve promotion from the Championship during a loan spell last season.
The striker had already shown his aerial prowess moments before he headed in Dusan Tadic's cross when he forced a good save from Swiss goalkeeper Yann Sommer.
He also set up Tadic for a chance shortly before the break and even tried an ambitious overhead kick as he brimmed with confidence.
After the break Serbia did not have the same control of the game but Mitrovic still could have won a penalty midway through the second half.
Two Swiss defenders appeared to have hold of his shirt as he challenged for the ball but the referee waved away the appeals and did not view the touchline monitor for a video review.
"We conceded a naive goal," Serbia coach Mladen Krstajic said. "We were on the front foot and then conceded on the counter.
"As far as the refereeing is concerned its not up to be to comment."
Switzerland's impressive run - the best stats
- Switzerland's 2-1 victory over Serbia is the first game at the 2018 World Cup to see a side win from a losing position.
- As an independent nation, Serbia have lost each of the six World Cup matches in which they have conceded.
- Switzerland have lost just one of their last 24 matches (W17 D6), a 2-0 defeat to Portugal in a World Cup qualifier in October 2017.
- Switzerland have conceded a goal in three consecutive World Cup games; they had only conceded in three of the previous 10 before this run.
- Stephan Lichtsteiner made his ninth World Cup appearance for Switzerland in this game - the most of any Swiss player in history.
- Aleksandar Mitrovic has been directly involved in 15 goals in his last 15 starts for Serbia (13 goals, 2 assists).
- Five of Granit Xhaka's 10 goals for Switzerland have come from outside the box.
- Only Josef Hugi (6 goals) has scored more World Cup goals for Switzerland than Xherdan Shaqiri (four, tied with Robert Ballamann and Andre Abegglen).
- Shaqiri has been directly involved in five of Switzerland's last six World Cup goals (four goals, one assist).
- 4MilivojevicBooked at 39minsSubstituted forRadonjicat 81'minutes
- 21MaticBooked at 45mins
- 20Milinkovic-SavicBooked at 33mins
- 17KosticSubstituted forLjajicat 65'minutes
- 9MitrovicBooked at 87mins
- 23ShaqiriBooked at 90mins
- 15DzemailiSubstituted forEmboloat 73'minutes
- 14ZuberSubstituted forDrmicat 90+4'minutes
- 9SeferovicSubstituted forGavranovicat 45'minutes
- Dr. Felix Brych
- Shots on Target
Second Half ends, Serbia 1, Switzerland 2.
Attempt missed. Xherdan Shaqiri (Switzerland) left footed shot from outside the box is close, but misses the top left corner. Assisted by Mario Gavranovic.
Foul by Xherdan Shaqiri (Switzerland).
Aleksandar Kolarov (Serbia) wins a free kick in the defensive half.
Corner, Switzerland. Conceded by Nemanja Radonjic.
Substitution, Switzerland. Josip Drmic replaces Steven Zuber.
Mario Gavranovic (Switzerland) wins a free kick in the defensive half.
Foul by Dusko Tosic (Serbia).
Xherdan Shaqiri (Switzerland) is shown the yellow card for excessive celebration.
Goal! Serbia 1, Switzerland 2. Xherdan Shaqiri (Switzerland) left footed shot from the left side of the box to the bottom right corner. Assisted by Mario Gavranovic following a fast break.
Fabian Schär (Switzerland) wins a free kick in the defensive half.
Foul by Aleksandar Kolarov (Serbia).
Corner, Switzerland. Conceded by Branislav Ivanovic.
Aleksandar Mitrovic (Serbia) is shown the yellow card.
Valon Behrami (Switzerland) wins a free kick in the defensive half.
Foul by Sergej Milinkovic-Savic (Serbia).
Corner, Serbia. Conceded by Manuel Akanji.
Attempt blocked. Manuel Akanji (Switzerland) left footed shot from the centre of the box is blocked.
Attempt blocked. Breel Embolo (Switzerland) left footed shot from the centre of the box is blocked. Assisted by Ricardo Rodríguez with a cross.