Croatia, France, Denmark and Italy were all eliminated from the competition on Monday, with three games going to extra time
Spain, Portugal, Netherlands and Germany will contest the semi-finals of the U21 European Championship in Slovenia and Hungary.
Spain sealed their place in the last four with a win against Croatia, while Portugal edged past Italy. Meanwhile, Netherlands got the better of France and Germany beat Denmark in a penalty shootout.
The semi-finals will be played on Thursday June 3.
Spain 2-1 (AET) Croatia
La Roja needed extra time to get eliminate Croatia in Slovenia.
Javier Puado was the star of the show, netting both goals to cancel out Luka Ivanusec’s late penalty for Croatia.
Puado came off the bench just before the hour mark and opened the scoring just eight minutes later.
Bryan Gil’s cross found the Espanyol player in the box and he finished from close range.
Spain looked set to have the tie wrapped up in normal time but Croatia were awarded a penalty in stoppage time when Hugo Guillamon brought down Stipe Biuk in the box.
Dinamo Zagreb midfielder Ivanusec converted to give his side a chance, but Puado popped up in the second half of extra time to seal the tie, firing into the roof of the net after taking on a pass from Marc Cucurella.
Netherlands 2-1 France
Netherlands came from behind to eliminate France thanks to two goals from AZ striker Myron Boadu.
Les Bleus took the lead through a header from centre-back Dayot Upamecano midway through the first half.
Netherlands came back strong in the second half, though, with Boadu finding the equaliser just six minutes after the restart.
It took until the third minute of stoppage time for Oranje to net the winner as they hit France with speed.
Justin Kluivert found Boadu with a square ball and the 20-year-old tucked it into the net.
Portugal 5-3 (AET) Italy
Portugal always had the advantage in their quarter-final, but Italy refused to give up and were rewarded for their efforts.
Dany Mota scored first just six minutes into the match before reacting quickly to bring down a header from Daniel Braganca and blast into the net.
Tomasso Pobega pulled one back for the Azzurri just before half-time when he knocked past goalkeeper Diogo Costa.
Portugal were ahead just 13 minutes into the second half through Goncalo Ramos but Gianluca Scamacca kept Italy in it with a goal two minutes later.
Just as Portugal looked set to hold on to the lead, Patrick Cutrone found the net in the 89th minute with a goal to take it into extra time.
The job became much more difficult for Italy right at the start of extra time, however, as Matteo Lovato was sent off with his second yellow card for a foul on Mota.
Portugal eventually restored their lead thanks to a goal from Real Valladolid attacker Jota but they did not stop there as Francisco Conceicao followed up with a goal just before the final whistle.
Denmark 2-2 (5-6 on pens) Germany
It took just three minutes for Wahidullah Faghir to make an impact for Denmark.
The 17-year-old came off the bench and struck in the 69th minute when Carlo Holse crossed to him in the box and he blasted into the net.
Germany tried to get back into the game by bringing on forward Karim Adeyemi for Ridle Baku but it was Lukas Nmecha who got the equaliser.
Jonathan Burkardt chested down a cross and queued up a shot to give Germany the lead 10 minutes into extra time.
Their advantage was short-lived, however, as Denmark were awarded a penalty after the break, which was convected by Victor Nelsson, sending the game into a shootout.
Goalscorers Burkardt and Fagir both missed their penalties as the shootout went into sudden death.
It was Victor Kristansen who missed the crucial spot kick as Paul Jaeckel scored the next one for Germany to send his side through.