Juventus held Barcelona to a 0-0 draw at the Nou Camp to win 3-0 on aggregate and reach the last four of the Champions League for the 12th time in their history.

The visitors were resolute in defence as they held off Barcelona's frontline who huffed and puffed all game long in search of a breakthrough.

Luis Enrique's enjoyed their fair share of chances but it wasn't to be their night, with the Italians deserved winners.

Here's five things we learned...

Barcelona 0 Juventus 0 player ratings Show all 22 1 /22 Barcelona 0 Juventus 0 player ratings Barcelona 0 Juventus 0 player ratings Marc-Andre Ter Stegen – 6 out of 10 Up to the task on the few occasions Juventus called him into action, but on the whole had little to contend with. Barcelona 0 Juventus 0 player ratings Sergi Roberto – 6 out of 10 Attacked with purpose down Barcelona’s right but could not repeat his heroics of the last round. Barcelona 0 Juventus 0 player ratings Gerard Pique – 6 out of 10 Did well to deny Cuadrado in the first quarter of an hour, but will have hoped to have made a more telling contribution at the other end. Barcelona 0 Juventus 0 player ratings Samuel Umtiti – 6 out of 10 Another Barca defender who largely coped with what he was tasked to do, but his side’s problems lay up front. Barcelona 0 Juventus 0 player ratings Jordi Alba – 5 out of 10 Should have connected and scored after Messi’s beautiful lofted pass early on. Barcelona 0 Juventus 0 player ratings Ivan Rakitic – 5 out of 10 An underwhelming display, with no notable moments of invention on a night when Barca needed his vision and creativity. Barcelona 0 Juventus 0 player ratings Sergio Busquets – 6 out of 10 Did the simple stuff in the centre of the park, as you might expect, but it would take more than that to break down the Juventus defence. Barcelona 0 Juventus 0 player ratings Andres Iniesta – 6 out of 10 Showed the most of any Barca midfielder, but that’s not saying much. A devilish first half cross was one of the few to get the better of Chiellini. Barcelona 0 Juventus 0 player ratings Lionel Messi – 6 out of 10 A few neat touches, but we’ve come to expect so much more. Unusually wasteful in front of goal, the best player in the world had a night to forget. Barcelona 0 Juventus 0 player ratings Luis Suarez – 5 out of 10 Uncharacteristically quiet. Chiellini successfully shackled his old foe. Barcelona 0 Juventus 0 player ratings Neymar – 8 out of 10 Barcelona’s best performer, the player most likely to make things happen, but appeared to let his frustration with the officials get the better of him at times. Barcelona 0 Juventus 0 player ratings Gianluigi Buffon – 6 out of 10 Lucky not to be punished by Messi when he failed to collect a corner. Otherwise, was his usual dependable self. Barcelona 0 Juventus 0 player ratings Dani Alves – 7 out of 10 His defensive capabilities were doubted in his final days at the Nou Camp, but showed he can still be relied upon here. Barcelona 0 Juventus 0 player ratings Leonardo Bonucci – 9 out of 10 Chiellini’s equal. Put himself between almost every Barcelona effort and his goal. Barcelona 0 Juventus 0 player ratings Giorgio Chiellini – 9 out of 10 There is perhaps no other current defender you would want in your side when protecting a three goal lead at the Nou Camp. Predictably excellent. Barcelona 0 Juventus 0 player ratings Alex Sandro – 6 out of 10 Weakest member of Juventus’ stubborn backline, but still a creditable display. Owes Khedira after the midfielder bailed him out of a failed attempt to nutmeg Suarez. Barcelona 0 Juventus 0 player ratings Sami Khedira – 7 out of 10 Good defensively, but made the wrong decision while in possession on several occasions when his team were countering. Barcelona 0 Juventus 0 player ratings Miralem Pjanic – 9 out of 10 Hardly put a foot wrong throughout. Known for his creativity, but put a shift in when his side needed him here. Barcelona 0 Juventus 0 player ratings Juan Cuadrado – 7 out of 10 Full of running and energy, posed a constant threat down Juventus’ right, but his team-mates failed to make enough use of him. Barcelona 0 Juventus 0 player ratings Paulo Dybala – 6 out of 10 Did not sparkle like in the first leg but did not have to. Contributed to his side’s dogged rearguard effort. Barcelona 0 Juventus 0 player ratings Mario Mandzukic – 6 out of 10 Has adapted well to his new left-midfield role, chipping in defensively when required. Barcelona 0 Juventus 0 player ratings Gonzalo Higuain – 6 out of 10 Had the chance to steal an unlikely lead for the visitors on the half volley early on but fired high.

Lightning doesn't strike twice

Just as on the eve of his team’s 6-1 comeback against Paris Saint-Germain, Luis Enrique was talking with an impressively assured matter-of-factness about how another “miracle” could rather logically take place ahead of his side’s Champions League quarter-final second leg against Juventus. But on this occasion, it wasn't to be. Barcelona huffed and puffed but they were unable to break down an Italian defence that was far more assured and composed than PSG's. The home side certainly had their chances, with Messi missing a number of close range efforts, but they were unable to recreate the magic that saw them through against PSG last month. Unfortunately for Enrique, lightning doesn't strike twice.

Messi receives treatment after his clash with Pjanic (Getty)

No love lost between Alves and his former team-mates

The former Barcelona man had said before the game that he would never be able to return to the Camp Nou, despite spending eight years with the club. "The ego of certain people means I can never return to Barcelona," Dani Alves said. "Their egos are huge and they'll never recognise or admit to what they made me feel." Understandably, then, the 33-year-old was in no mood for pleasantries tonight. He was physical and combative, holding back few punches, and hounded his old team-mates all game long. Putting in a number of crucial challenges and interceptions, Alves was a valuable asset to the visitors. Barcelona's loss is Juventus' gain.

Alves enjoyed a solid evening in defence (Getty)

Neymar the redeemer? Not this time

Neymar delivered one of his finest performances in a Barcelona shirt last month to guide the side to a historic comeback against PSG. The Brazilian was quite simply magical, injecting a sense of dynamism, creativity and urgency into Barca's side as they overturned a foul-goal deficit. Alas, it wasn't to be this time round. Neymar certainly proved to be a nuisance tonight, asking testing questions of the Juventus defence in and around their box, but he lacked that clinical edge to his game. Frustration also appeared to get the better of him at times, too. An unnecessary and unprovoked challenge on Pjanic saw him pick up a yellow card which would have ruled him out of Barcelona's first-leg semi-final had they got there. Against the likes of Leonardo Bonucci and Giorgio Chiellini, the task at hand was always going to represent a significant set-up from PSG. Neymar the redeemer? Not this time.

Juventus sold as a rock

Leonardo Bonucci and Giorgio Chiellini were quite simply sublime. Dogged, pugnacious and intelligent, the central pairing commanded the Juventus backline all game long. Against such strength and experience, it's no wonder Suarez and co. struggled to find a way through. If it wasn't Bonucci with the last-ditch sliding tackle, it was Chiellini with an all-important interception. Their positioning tonight was equally impressive, confirming their status as the best in the business at penalty box defending. The introduction of Andrea Barzagli, coming on for Dybala with 15 minutes to go, tightened things up at the back for Juventus and firmly closed the door to Barcelona's front men.

Chiellini played a crucial role tonight (Getty)

Dybala enjoys mixed evening