Holders Real Madrid will tackle Italian giants Juventus in the Champions League final on Saturday.
Here, we look at how the clubs reached Cardiff.
REAL MADRID GROUP F
Defending champions Real Madrid were shaky in the autumn, beating Sporting Lisbon at home and away but struggling through two 2-2 draws with Borussia Dortmund and suffering the embarrassment of a 3-3 draw with Legia Warsaw, weeks after thrashing the Polish club 5-1 at the Bernabeu.
JUVENTUS GROUP H
While Juventus’ first-round stalemate with Sevilla disappointed some, it set the tone for a defensive masterclass across the entire campaign. The goals came when they mattered against Dinamo Zagreb and Lyon and Juve saw off Sevilla’s threat to their dominance with a 3-1 away win in November.
REAL MADRID 6-2 NAPOLI
Napoli represented a daunting prospect for the Spanish side, given their free-scoring ways in Serie A, but they were successfully kept at arm’s length as Real won the first leg confidently. They had to recover from conceding a first-half goal to see off the Italians in the return leg, however.
JUVENTUS 3-0 PORTO
Porto are always an unpredictable beast and while the Dragons are no longer at the peak of their powers, Massimiliano Allegri was suitably wary of a team who hammered Leicester 5-0 in the group stage. Defence was the key as Juve shut out the Portuguese both at home and away, progressing smoothly.
REAL MADRID 4-2 BAYERN MUNICH
Real’s first proper test of their European mettle – and determination to become the first club to retain the Champions League – saw them pitted against German giants Bayern Munich and they needed the mercurial talent of Cristiano Ronaldo in both legs.
The Portuguese’s brace clinched a vital 2-1 win at the Allianz Arena and, when faced with a confident comeback in Madrid, he plundered a hat-trick.
JUVENTUS 3-0 BARCELONA
No one wanted Barcelona in the last eight and even Juve’s solid defenders feared the prospect of 180 minutes against the ‘MSN’ strikeforce.
An impressive 3-0 first-leg victory meant all that was required was a backs-to-the-walls approach at the Nou Camp, and the Bianconeri duly held Barca to nil.
REAL MADRID 4-2 ATLETICO MADRID
If anyone thought Ronaldo would take his foot off the gas having reached 100 European goals in the battles with Bayern, they were sorely mistaken.
He almost single-handedly ensured city rivals Atletico Madrid would not make a third final appearance in four years by smashing another treble at the Bernabeu.
Diego Simeone’s men were up for the fight in the second leg but Isco’s first-half effort meant the chase was beyond them on their final European night at the Vicente Calderon.
JUVENTUS 4-1 MONACO
All-out attack met steely defence when Monaco were drawn against Juve and the Old Lady had to throw off the shackles to some extent.
A remarkable team performance – led by the rampant Dani Alves – in the principality sealed a crucial 2-0 first-leg victory and Juve followed it up with a confident 2-1 triumph in Turin in which experience and organisation won the day.
Provided by Press Association Sport