A moment of brilliance from Zlatan Ibrahimovic in the second minute of injury time gave Sweden a 1-0 win over Hungary yesterday and propelled them to the top of World Cup qualifying Group Eight.

In the dying moments of a match which Hungary dominated and should have won, the Juventus striker dribbled through the defence and unleashed a fierce shot that found the top left corner of the Hungary goal.

Before the Ibrahimovic strike, Sweden had looked out of sorts and had threatened the home goal only twice, while Hungary had plenty of chances at the other end.

Metz left winger Szabolcs Huszti forced two good saves out of Andreas Isaksson, one in each half, while Panathanaikos striker Sandor Torghelle should have made sure of the match in the second half with two chances. Zoltan Gera also came close twice.

"When you have a world class player like Zlatan Ibrahimovic to score such a goal, you can always win, even if you did not play well," Sweden coach Lars Lagerback said.

"Perhaps a draw would have been the fairest result, but that is football."

Prior to that Sweden's only clear-cut chance was a header from Henrik Larsson in the first half.

The only battle that matters now in Group Eight is that for top spot between Sweden on 21 points and second-placed Croatia, who are a point adrift. Croatia play Sweden on October 8.

For Hungary with 13 points and who play Croatia at home on October 12, the campaign is over.

"I am still in a state of shock... we did not get the result we deserved," said Hungary coach Lothar Matth-aeus.

Bulgaria recovered from two goals down to earn a dramatic 3-2 victory over Iceland.

Martin Petrov got the winner four minutes from time with a brilliant free-kick after Dimitar Berbatov pulled a goal back in the first half before setting up Iliev's equaliser.

Gretar Steinsson had given the visitors the lead in the ninth minute after taking advantage of a blunder by Bulgaria's defence before defender Hermann Hreidarsson, set up by striker Eidur Gudjohnsen, doubled their lead seven minutes later.

Berbatov started the comeback in the 21st minute after a fine solo effort from Petrov and Iliev equalised in the 69th minute.