The draw for the Champions League group stage was made on Thursday, and to say it delivered might be an understatement.
Football fans will be treated to a wave of juicy fixtures in the coming months, including Manchester United against Paris Saint-Germain, Bayern Munich against Atletico Madrid and of course, Barcelona against Juventus.
Seeing Lionel Messi and Cristiano Ronaldo battle it out to finish top of Group G will be thrilling.
Defending champions Bayern Munich will be a popular pick to win it all once again, with the addition of Leroy Sane bolstering their already impressive attacking options.
However, the departure of Thiago Alcantara to 2019 champions Liverpool might just swing things in the Reds' favour.
And among the chasing pack are PSG, Barcelona, Juventus and Manchester City. Boy, we're in for another terrific competition.
Predicting every group stage result
Now that we know how the groups look, it's time to make some predictions.
So we've gone through each group and predicted the outcome of every single game.
Be sure to come back to us for the lottery results if we get much of this correct...
Group A
- Atletico Madrid 1-2 Bayern Munich
- Bayern Munich 3-0 Atletico Madrid
- Atletico Madrid 1-0 Lokomotiv Moscow
- Lokomotiv Moscow 1-1 Atletico Madrid
- Atletico Madrid 2-1 RB Salzburg
- RB Salzburg 2-2 Atletico Madrid
- Bayern Munich 4-1 Lokomotiv Moscow
- Lokomotiv Moscow 0-3 Bayern Munich
- Bayern Munich 2-0 RB Salzburg
- RB Salzburg 0-1 Bayern Munich
- Lokomotiv Moscow 0-2 RB Salzburg
- RB Salzburg 2-1 Lokomotiv Moscow
Final standings
1. Bayern Munich: 18 points
2. Atletico Madrid: 8 points
3. RB Salzburg: 7 points
4. Lokomotiv Moscow: 1 point
We're expecting Bayern to take it with a perfect record. Atletico Madrid will just pip RB Salzburg to second spot after beating the Austrian side at home.
Group B
- Borussia Monchengladbach 0-2 Inter Milan
- Inter Milan 3-0 Borussia Monchengladbach
- Borussia Monchengladbach 0-1 Real Madrid
- Real Madrid 2-0 Borussia Monchengladbach
- Borussia Monchengladbach 1-0 Shakhtar Donetsk
- Shakhtar Donetsk 1-0 Borussia Monchengladbach
- Inter Milan 2-1 Real Madrid
- Real Madrid 1-1 Inter Milan
- Inter Milan 2-0 Shakhtar Donetsk
- Shakhtar Donetsk 1-2 Inter Milan
- Real Madrid 1-0 Shakhtar Donetsk
- Shakhtar Donetsk 0-2 Real Madrid
Final standings
1. Inter Milan: 16 points
2. Real Madrid: 13 points
3. Shakhtar Donetsk: 3 points (-6 GD)
4. Borussia Monchengladbach: 3 points (-8 GD)
A bit of an upset here, with Inter Milan beating Real Madrid to first place. Inter's attack, with Romelu Lukaku, Lautaro Martinez and Alexis Sanchez, will be too hot for Real to handle.
Group C
- FC Porto 1-3 Manchester City
- Manchester City 2-0 FC Porto
- FC Porto 2-0 Olympiacos
- Olympiacos 2-2 FC Porto
- FC Porto 2-1 Marseille
- Marseille 2-2 FC Porto
- Manchester City 2-0 Olympiacos
- Olympiacos 2-3 Manchester City
- Manchester City 3-1 Marseille
- Marseille 0-2 Manchester City
- Olympiacos 1-1 Marseille
- Marseille 1-2 Olympiacos
Final standings
1. Manchester City: 18 points
2. FC Porto: 8 points
3. Olympiacos: 5 points
4. Marseille: 2 points
Manchester City will go six for six in what is a comfortable group for Pep Guardiola and his team. The battle for second place will be interesting, but we're going for FC Porto.
Group D
- AFC Ajax 0-2 Atalanta
- Atalanta 2-1 AFC Ajax
- AFC Ajax 2-1 FC Midtjylland
- FC Midtjylland 1-2 AFC Ajax
- AFC Ajax 0-3 Liverpool
- Liverpool 4-2 AFC Ajax
- Atalanta 2-0 FC Midtjylland
- FC Midtjylland 0-3 Atalanta
- Atalanta 1-2 Liverpool
- Liverpool 1-0 Atalanta
- FC Midtjylland 1-2 Liverpool
- Liverpool 3-1 FC Midtjylland
Final standings
1. Liverpool: 18 points
2. Atalanta: 12 points
3. AFC Ajax: 6 points
4. FC Midtjylland: 0 points
Liverpool shouldn't have any problems reaching the knockout stages, with Atalanta joining them.
Meanwhile, AFC Ajax won't get out of their group for the second straight year.
Group E
- Chelsea 3-1 FK Krasnodar
- FK Krasnodar 1-2 Chelsea
- Chelsea 2-3 Sevilla
- Sevilla 0-1 Chelsea
- Chelsea 2-0 Stade Rennais
- Stade Rennais 0-1 Chelsea
- FK Krasnodar 1-2 Sevilla
- Sevilla 4-0 FK Krasnodar
- FK Krasnodar 2-1 Stade Rennais
- Stade Rennais 2-0 FK Krasnodar
- Sevilla 2-1 Stade Rennais
- Stade Rennais 1-1 Sevilla
Final standings
1. Chelsea: 15 points
2. Sevilla: 13 points
3. Stade Rennais: 4 points
4. FK Krasnodar: 3 points
It's between Chelsea and Sevilla to win Group E, but Frank Lampard's side have the stronger squad and should prevail.
That said, we think the Spanish side will take a thrilling contest at Stamford Bridge.
Group F
- Borussia Dortmund 1-2 Club Brugge
- Club Brugge 0-2 Borussia Dortmund
- Borussia Dortmund 2-0 Lazio
- Lazio 1-1 Borussia Dortmund
- Borussia Dortmund 3-1 Zenit St. Petersburg
- Zenit St. Petersburg 0-2 Borussia Dortmund
- Club Brugge 1-1 Lazio
- Lazio 4-0 Club Brugge
- Club Brugge 1-1 Zenit St. Petersburg
- Zenit St. Petersburg 2-0 Club Brugge
- Lazio 2-1 Zenit St. Petersburg
- Zenit St. Petersburg 1-1 Lazio
Final standings
1. Borussia Dortmund: 13 points
2. Lazio: 9 points
3. Zenit St. Petersburg: 5 points (-3 GD)
4. Club Brugge: 5 points (-7 GD)
Dortmund have a squad capable of going far in the Champions League.
Whether they will or not remains to be seen, but we're expecting them to finish top of their group.
Group G
- Barcelona 3-0 Dynamo Kyiv
- Dynamic Kyiv 0-1 Barcelona
- Barcelona 2-0 Juventus
- Juventus 3-2 Barcelona
- Barcelona 4-1 Ferencvarosi TC
- Ferencvarosi TC 1-3 Barcelona
- Dynamo Kyiv 1-2 Juventus
- Juventus 2-1 Dynamo Kyiv
- Dynamo Kyiv 3-0 Ferencvarosi TC
- Ferencvarosi TC 1-3 Dynamo Kyiv
- Juventus 6-0 Ferencvarosi TC
- Ferencvarosi TC 0-3 Juventus
Final standings
1. Barcelona: 15 points
2. Juventus: 15 points
3. Dynamo Kyiv: 6 points
4. Ferencvarosi TC: 0 points
So Messi just pips Ronaldo in the battle to win Group G, despite both teams finishing on 15 points.
The first tie-breaker (head-to-head points) wouldn’t split them, but the second (head-to-head goal difference) would. Barcelona’s goal difference in their head-to-head ties would be +1, Juventus’s would be -1.
Group H
- Istanbul Basaksehir 1-4 Manchester United
- Manchester United 3-0 Istanbul Basaksehir
- Istanbul Basaksehir 0-2 Paris Saint-Germain
- Paris Saint-Germain 5-1 Istanbul Basaksehir
- Istanbul Basaksehir 1-2 RB Leipzig
- RB Leipzig 1-1 Istanbul Basaksehir
- Manchester United 2-1 Paris Saint-Germain
- Paris Saint-Germain 4-1 Manchester United
- Manchester United 1-2 RB Leipzig
- RB Leipzig 2-2 Manchester United
- Paris Saint-Germain 2-1 RB Leipzig
- RB Leipzig 1-3 Paris Saint-Germain
Final standings
1. Paris Saint-Germain: 15 points
2. Manchester United: 10 points
3. RB Leipzig: 8 points
4. Istanbul Basaksehir: 1 point
PSG will return with a vengeance following last season's final heartache, smashing five past Istanbul Basaksehir and four past Man United.
Despite losing at home to RB Leipzig, we reckon United will beat the Bundesliga outfit to second place.