Manchester United will face Barcelona in the quarter-finals of the Champions League quarter-finals, while Tottenham take on Premier League rivals Manchester City.
Elsewhere, Liverpool have landed Porto in the last eight and Juventus will be looking for more magic from Cristiano Ronaldo against Ajax.
There was a good chance, with four sides still in the competition, that an all-English affair would be put in place.
City and Spurs came out of the hat together and will need no introduction to one another as they prepare to lock horns in pursuit of European glory, according to Goal.
Pep Guardiola is looking to lead the Blues to a first Champions League crown, having previously claimed the trophy on two occasions with Barcelona.
The mercurial talents of Messi helped him to those successes and the Argentine will be looking for the fifth triumph of his remarkable career in 2019.
That quest must go through Old Trafford after seeing Barca paired with United.
The Red Devils had initially been pencilled in to travel to Camp Nou for the first leg of a heavyweight contest, but that will now be staged in Manchester due to the need for a fixture swap .
With City also drawn second in their meeting with Spurs, two near neighbours cannot be at home on the same night or on back-to-back evenings.
Ole Gunnar Solskjaer will, therefore, welcome Messi and Co to Old Trafford before looking to finish the job and book a semi-final berth in Catalunya – with the former United striker returning to the scene of his 1999 Treble-winning exploits.
Liverpool will also be looking to reach that stage having suffered final heartache against Real Madrid last season.
The Reds overcame Bayern Munich in the last 16 and will be feeling confident heading into a two-legged tie with Porto.
Juventus, meanwhile, know that they can call upon the services of five-time winner Ronaldo in their ongoing pursuit of a first European Cup win since 1996.
Their opponents the last time they lifted an iconic piece of silverware were Ajax – who they defeated on penalties at the Stadio Olimpico in Rome.
The Dutch giants have been something of a surprise package in this season’s competition, with the notable scalp of Real Madrid – fresh from three successive triumphs – claimed in the previous round.
While his former employers proved to be no match for the men from Amsterdam, Ronaldo will be seeking to add to the hat-tricks heroics which saw him single-handedly down Atletico Madrid when Juve are reunited with Eredivisie opponents.
If the Portuguese can inspire more progress for the Bianconeri, there will be no meeting for him with eternal rival Messi in the semi-finals.
The draw for that stage has already determined that the victors in Juve’s meeting with Ajax will take on Tottenham or Manchester City in the last four.
That leaves Manchester United or Barcelona to take on Liverpool or Porto in the second semi, with a place in a Madrid showpiece at Wanda Metropolitano on June 1 up for grabs.
Champions League quarter-final draw in full:
Ajax vs Juventus
Liverpool vs Porto
Tottenham vs Man City
Man Utd vs Barcelona
The first legs of the quarter-final ties will take place on 9 and 10 April, with the return dates being held a week later.