Juventus progressed to the semi-finals of the Champions League after holding out Barcelona for a 0-0 draw in their quarter-final second leg at Camp Nou. Juventus held a 3-0 advantage from the first leg, and produced a brilliant defensive performance on Wednesday to block out Barcelona’s attack.

The La Liga defending champions needed another miracle like the one they produced in the round of 16 against Paris Saint-Germain, when they upturned a 4-0 deficit from the first leg. However, there wasn’t to be another great escape for Luis Enrique’s men as they were shut out by a resolute Juve defence. Barcelona had only one shot on target, by Lionel Messi and denied by Gianluigi Buffon, the entire match, as Luis Suarez and Neymar both wasted their chances.

Juventus thus became only the third team after Manchester United and Bayern Munich to prevent Barcelona from scoring across two legs of a Champions League tie. The Italian champions also maintained their record of not having conceded a single goal from open play in the Champions League this season.

Monaco back in semis after 2004

In Wednesday’s other quarter-final, Monaco beat Borussia Dortmund 3-1 at home to complete a 6-3 aggregate win and progress to the semis. Monaco are in the Champions League semi-finals for the first time since 2004, when they had reached the final but lost to Jose Mourinho’s Porto.

The kickoff at Stade Louis II was delayed by five minutes after Dortmund’s team bus was held back by the police for 20 minutes because of security reasons. This was a week after three explosions had taken place near the Dortmund bus, which left one player injured. Dortmund manager Thomas Tuchel said his players were in an “awkward mindset” ahead of the match because of what all had transpired over the last week.

Monaco teenager Kylian Mbappe opened the scoring early on Wednesday from close range, before Radamel Falcao headed in soon after to all seal the tie for his team. Dortmund pulled one back minutes into the second half via Marco Reus, who was brilliantly set up by substitute Ousmane Dembele. However, Dortmund could not find any more goals, even as Monaco substitute Valere Germain scored late in the match to secure a semi-final spot.

The semi-finalists:

This means that Monaco and Juventus join Spanish neighbours Real Madrid and Atletico Madrid in the semi-finals. The draw for the last-four will take place on Friday.