Italy took the lead through Antonio Di Natale after 49 minutes but Roland Juhasz equalised 12 minutes later before a Zoltan Gera penalty and a Robert Seczesin strike settled it in the hosts' favour.

Italy started with plenty of attacking intent and they almost took the lead after four minutes when Andrea Pirlo's free-kick produced a fine save from home keeper Marton Fulop.

Hungary offered their first threat going forward after nine minutes but Gera shot wide from close range when faced by Azzurri keeper Gianluigi Buffon.

The hosts came close again five minutes later, Balazs Dzsudzsak's drilled shot from the edge of the area clipping the right-hand post with Buffon beaten.

Fulop, who recently went on loan to English Championship side Leicester after failing to break into the Sunderland first team, distinguished himself again after 27 minutes when he denied Alex Del Piero from 10 yards.

Although they were looking fragile at the back, Hungary were still troubling Italy on the break and only a fine save from Buffon prevented youngster Adam Vass heading home from close range seven minutes before the break.

Italy moved ahead four minutes into the second half when Alberto Aquilani played in Di Natale and he finished well.

The lead was relatively shortlived, however, as Hungary hit back through Juhasz, who fired home from close range after he was surprisingly left unmarked inside the area.

Gera put Hungary ahead five minutes later from the spot after Fabio Cannavaro had felled Tamas Priskin inside the area.

Filippo Inzaghi almost equalised with 16 minutes to go but shot over the bar from close range.

It proved a critical miss as shortly afterwards Hungary grabbed a third as a fine team move culminated in substitute Seczesin slotting past Buffon.

It could have been worse for Roberto Donadoni's men but Buffon pulled off a fine save in injury time to keep out Seczesin's 25-yard drive.