Top of the section before the game but not quite through, France knew even a one-goal defeat would book their progress. The final margin was double that, Ibrahimović's acrobatic goal and a late Sebastian Larsson clincher ending Les Bleus' 23-match unbeaten run and ensuring that, at the third time of asking in Kyiv, Sweden did not see a lead turn into a defeat. England's 1-0 win against Ukraine therefore meant they overtook France, who meet the holders on Saturday in Donetsk, where they are based for these finals and played their previous two matches.

Sweden could not improve on fourth place but with the majority of the support in the stands, they raced out of the blocks, Ola Toivonen – in for Johan Elmander up front – heading just wide and after some great Kim Källström skill, Larsson making Hugo Lloris save. At the other end Andreas Isaksson did even better to deny Franck Ribéry from close range.

Lloris was a relieved man soon after when Toivonen shook off Philippe Mexès, raced into the box, rounded the goalkeeper, but found the angle too acute and hit the outside of the post. Karim Benzema then smashed a shot over but that early hectic pace was not maintained in the stifling evening heat and gradually the openings dried up. On his major tournament bow Emir Bajrami on the Sweden flanks kept France on their toes, however, taking his chance in Rasmus Elm's enforced absence.

There was some excitement later in the half when Benzema led a jinking break with Ribéry, whose effort was deflected wide. Perhaps that dropping of tempo was the reason Christian Wilhelmsson was sent on for Bajrami at the break, the substitute immediately menacing the France defence.

Benzema had the first clear chance of the second period, curling the ball wide, but Lloris needed to produce a great save to deny Larsson on 53 minutes. Barely 60 seconds later the France goalkeeper had no chance, Larsson crossing and Ibrahimović superbly twisting his body for a flying volley from the edge of the area.

Not long after the Sweden captain set up Wilhelmsson, so influential so quickly, but Lloris stood firm and then tipped over from Olof Mellberg. Florent Malouda replaced Hatem Ben Arfa and France rallied; Yann M'Vila, starting in place of injury doubt Yohan Cabaye, sent in a powerful strike that was well saved by Isaksson.

A Nasri cross so nearly found its way to Mexès but Mellberg slid in with perfect timing. Jérémy Ménez came on and a slight mis-hit allowed Isaksson to block his first effort; from the resulting corner another substitute, Olivier Giroud, headed wide when unmarked. However Sweden and their celebrating fans had the last word, substitute Samuel Holmén hitting the crossbar and Larssson smashing in the rebound. France's advance was still never in doubt but Mexès will miss their encounter with Spain after receiving his second booking of these finals.