Northern Ireland suffered their first defeat of the Euro 2020 qualifying campaign as Marcel Halstenberg's thunderbolt sent Germany on their way to a 2-0 win in Belfast.

The first of four crunch fixtures against the powerhouses of Group C - Northern Ireland face the Netherlands in Rotterdam next - ended in defeat after Serge Gnabry rolled in a second in stoppage time, but the 18,000 fans packed into Windsor Park will hardly have been discouraged given their side's display.

Michael O'Neill's men played with heart and desire as they were roared on by a boisterous crowd, but ultimately Germany's superior quality saw them take control after the break.

The opening goal was a moment of pure quality as Halstenberg met Lukas Klostermann's deep cross with a powerful half-volley that flew past Bailey Peacock-Farrell.

It was the RB Leipzig defender's first international goal as he won his fourth cap, one of the several new faces in a Germany squad which has undergone a major overhaul since their dismal World Cup showing last year.

Only Toni Kroos and Joshua Kimmich survived from the side that won 3-1 here two years ago, though it said plenty about the resources available to Joachim Low that 10 of his starting 11 are playing Champions League football this season.

For the opening 45 minutes, Northern Ireland matched that quality with belief and spirit, testing Germany's resolve in the wake of their conceding four second-half goals in defeat to the Dutch on Friday night.

The Germans have never lost back-to-back qualifiers but they certainly looked unnerved in the opening exchanges as Northern Ireland poured forward.

Conor Washington poked just over in the sixth minute and was then denied by a fine save from Manuel Neuer after an uncharacteristic mistake from Kroos.

Germany gradually began to take the sting out of the atmosphere as they hogged possession and created chances of their own, with George Saville taking the full force of a Kimmich strike which he blocked on the edge of the area.

Germany were appealing for a penalty when Timo Werner's shot appeared to strike Craig Cathcart's hand on its way past the post but referee Daniele Orsato waved them away before Peacock-Farrell denied Niklas Sule from the resulting corner.

A dramatic end to the first half then followed. Stuart Dallas' low cross caused a goalmouth scramble but Neuer somehow emerged with the ball as Washington could not stretch far enough, while Peacock-Farrell made a point-blank save from Werner as Germany tried to hit them on the break.

But for all Northern Ireland's hard work in the first half, Germany needed only three minutes to open the scoring in the second.

Peacock-Farrell had already made a good save to deny Klostermann in the opening seconds but there was nothing he could do when Halstenberg met Klostermann's deep cross moments later.

It might have been worse moments later but the Burnley stopper denied Brandt before Klostermann fired wastefully over on the follow-up, while Gnabry poked the ball just wide from a counter-attack.

Germany were in full flow now and Peacock-Farrell made an excellent save to push Werner's low shot just around the post after a neat combination with Marco Reus.

Northern Ireland needed to regroup, but were screaming for a penalty when Paddy McNair hit the deck on the hour, and then saw Dallas fire just wide from substitute Gavin Whyte's cross.

As the game became more stretched, Germany still looked the more likely to score, but substitute Kai Havertz headed wastefully wide.

O'Neill threw on Josh Magennis and young Linfield striker Shayne Lavery in the closing stages but they struggled to make an impact and it was Gnabry who had the final say, beating the offside trap and then Peacock-Farrell from a tight angle in the third minute of time added on.