Match ends, Sweden 0, Belgium 1.
Radja Nainggolan's superb 25-yard strike secured Belgium's place in the last 16 of Euro 2016 and knocked out Sweden, bringing to an end Zlatan Ibrahimovic's international career.
Victory in Nice meant Belgium finished as Group E runners-up and will face Hungary in Toulouse on Sunday.
Sweden exited the competition with one point from three games in which Ibrahimovic failed to score.
The Republic of Ireland qualified in third thanks to a 1-0 win over Italy.
- Ibrahimovic bids farewell as Sweden bow out
- Predict the last-16 results
- Republic face France, Wales play N Ireland and England meet Iceland
- Plot each team's route to the final - all the knockout fixtures
More to come from Belgium?
It seemed Belgium might start matching the expectations around their talented squad with a 3-0 win over the Republic on Saturday.
But they laboured to a win against a Sweden side that have been toothless throughout the campaign.
Roma midfielder Nainggolan's 84th-minute swerving right-footed finish, angled into the bottom-left corner via a slight deflection, was a moment of high quality.
However, a starting XI that featured six Premier League players and featured just one change from the win over the Republic lacked decisiveness in the attacking third of the pitch.
Kevin de Bruyne was the most industrious option for Marc Wilmots' team, providing the cross for Thomas Meunier to flash a header wide and putting through Romelu Lukaku for a one-on-one chance which the Everton striker squandered - but they still have plenty of room for improvement.
Zlatan bows out with a whimper
This was probably Sweden's most effective performance of the tournament - they mustered four shots on target, having not registered a single one in the previous two games.
They were unlucky not to lead minutes before Nainggolan's winner, when Andreas Granqvist's header was cleared off the line by De Bruyne.
But Sweden finished bottom of the group with one point, an unfitting way to end the international career of 116-time capped Ibrahimovic, the country's record goal scorer.
The 34-year-old, a reported target for Manchester United after he left Paris St-Germain this summer, announced this week he would retire from Sweden duty.
He failed to add to his 62 international goals and did not register a shot on target until this final group game.
His own frustrations were echoed by Sweden, who did not see one of their own players find the net in the tournament - their only goal was scored by the Republic's Ciaran Clark in the opening 1-1 draw.
Man of the match - Kevin de Bruyne (Belgium)
Belgium take on Group F winners Hungary, who were involved in a thrilling 3-3 draw with Portugal on Wednesday, at the Stadium Municipal on Sunday (kick-off 20:00 BST).
Sweden return home to start life without Ibrahimovic, as well as influential goalkeeper Andreas Isaksson, who is also retiring.
The stats you need to know
- Radja Nainggolan's goal was his fifth for Belgium and his first since October 2015
- Belgium won back-to-back games at the European Championships for the first time
- Sweden have lost six of their past eight games at the European Championships (W1 D1). They have also kept only one clean sheet in that run
- Sweden had only four shots on target at Euro 2016, the fewest of any side
- Marcus Berg's fifth-minute shot was Sweden's first on target at Euro 2016, in their third game
- 3JohanssonBooked at 36mins
- 7LarssonSubstituted forDurmazat 70'minutes
- 8EkdalBooked at 33mins
- 6ForsbergSubstituted forZenginat 82'minutes
- 11BergSubstituted forGuidettiat 63'minutes
- 16MeunierBooked at 30mins
- 6WitselBooked at 45mins
- 11CarrascoSubstituted forMertensat 71'minutes
- 7De Bruyne
- 10E HazardSubstituted forOrigiat 90+3'minutes
- 9LukakuSubstituted forBentekeat 87'minutes
- 21J Lukaku
- Dr. Felix Brych
- Shots on Target
Second Half ends, Sweden 0, Belgium 1.
Attempt saved. Dries Mertens (Belgium) right footed shot from outside the box is saved in the bottom left corner. Assisted by Kevin De Bruyne.
Substitution, Belgium. Divock Origi replaces Eden Hazard.
Eden Hazard (Belgium) wins a free kick in the attacking half.
Foul by Albin Ekdal (Sweden).
Corner, Belgium. Conceded by Jimmy Durmaz.
Corner, Belgium. Conceded by Andreas Isaksson.
Attempt saved. Christian Benteke (Belgium) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Eden Hazard.
Attempt missed. Kevin De Bruyne (Belgium) right footed shot from outside the box misses to the left. Assisted by Dries Mertens.
Foul by Thomas Meunier (Belgium).
Erkan Zengin (Sweden) wins a free kick on the left wing.
Axel Witsel (Belgium) wins a free kick in the attacking half.
Foul by Kim Källström (Sweden).
Substitution, Belgium. Christian Benteke replaces Romelu Lukaku.
Attempt missed. Zlatan Ibrahimovic (Sweden) right footed shot from the centre of the box is close, but misses to the right. Assisted by Albin Ekdal.
Offside, Belgium. Eden Hazard tries a through ball, but Dries Mertens is caught offside.
Goal! Sweden 0, Belgium 1. Radja Nainggolan (Belgium) right footed shot from outside the box to the bottom left corner. Assisted by Eden Hazard.
Attempt blocked. Andreas Granqvist (Sweden) header from the centre of the box is blocked. Assisted by Kim Källström with a cross.
Substitution, Sweden. Erkan Zengin replaces Emil Forsberg.