The Premier League title race went down to the wire again and was decided after one of the most dramatic final days in recent memory.
But once the dust settles, both sets of fans will perhaps look back at the unexpected twists and the turns, and how lessons could be learned from them.
Liverpool could perhaps have exerted even further pressure on the champions, while City nearly threw a 13-point lead away.
Here, Sportsmail looks at the 10 games that proved crucial in the title race as Pep Guardiola’s men edged out their counterparts at Anfield again.
Manchester City won their fourth Premier League title in five years after a dramatic final day
Oct 30: Liverpool 2-2 Brighton
Many major teams have crumpled at fortress Anfield in years gone by but last October, Brighton refused to be one of them.
It looked like a routine win for Liverpool when Jordan Henderson took just four minutes to put Liverpool into the lead. Sadio Mane doubled the advantage only 20 minutes later and Klopp’s men were cruising.
But Enock Mwepu pulled a goal back four minutes before half-time to give Brighton hope and after Leandro Trossard equalised in the second half, Graham Potter’s men shut up shop and Liverpool had no answers.
It is a result that proved so costly for Liverpool.
Liverpool surrendered a two-goal advantage at home against Brighton back in October
Jan 2: Chelsea 2-2 Liverpool
The day the title race looked over. Again Liverpool led 2-0, and again they lost the lead. But away to Chelsea is a different matter than being at home at Brighton.
Mane and Mohamed Salah fired Liverpool into a 2-0 lead at Stamford Bridge but Thomas Tuchel’s men responded via a Mateo Kovacic wondergoal and a Christian Pulisic strike just before half-time.
After the match, Liverpool vice-captain Virgil van Dijk all-but conceded the Premier League title to City with the gap between the two teams extending to 11 points.
‘It’s a big gap. They’ve (City) got the title to lose at the moment, but anything can happen still,’ Van Dijk said. ‘Unfortunately we’ve been there and we had a gap out in front, and we gave it away.
‘Anything is possible. We will focus on ourselves, Chelsea will focus on themselves. We just have to get results. Get results, play good football, win games.’
The Reds blew another two-goal lead away at Chelsea in January and the title looked lost
Jan 15: Man City 1-0 Chelsea
The impetus was all with Manchester City as they hosted Tuchel’s men at the Etihad. It was star man Kevin De Bruyne who made the difference, scoring with a stunning low strike from 25 yards.
It put City 13 points ahead of Chelsea, who at that stage occupied second place in the standings, and 14 ahead of Liverpool who were third, albeit with two games in hand.
Guardiola was thrilled with the victory but was coy over his team’s title hopes.
‘It’s an important victory because we’re playing against a big contender,’ Guardiola said. ‘When you get three points they can’t get three points and it’s one week less. But in January no one is champion.’
Kevin De Bruyne’s stunner against Chelsea put Manchester City 13 points clear in first place
Feb 23: Liverpool 6-0 Leeds
City drew against Southampton shortly after their win over Chelsea and won their other two games, while Liverpool won their ensuing five matches.
It meant that Liverpool needed to defeat a Leeds side in freefall under Marcelo Bielsa to cut the gap down to three points. And Klopp’s men were rampant under the floodlights at Anfield, sweeping them aside with an emphatic 6-0 victory.
Mohamed Salah and Sadio Mane scored twice, with Joel Matip and Virgil van Dijk also finding the back of the net.
Klopp was pensive about his side’s title hopes in the aftermath, looking to cool the pressure after such a commanding win.
‘It is three points (the gap at the top) until the weekend and then City will probably win and then it will be six points,’ he said. ‘If we win all our games pretty much there will be a chance for us.
‘I think for people outside it is better to have a three or six-point gap than to have a 20 or 30-point gap so it is more exciting but we have to win a lot of the games against all the difficult opponents and that will be a tricky task. We will give it a try.’
Liverpool’s resurgence was marked by an impressive 6-0 thrashing of Leeds in February
Mar 14: Crystal Palace 0-0 Man City
Monday night under the Selhurst Park lights is a tricky task for any team in world football and Patrick Vieira’s men did Liverpool a huge favour back in March.
After holding City to a 0-0 draw, Liverpool beat Arsenal 2-0 two days later to slash the gap from 13 points to one in just eight weeks.
Speaking after the draw at Palace, Guardiola said: ‘Luck doesn’t exist in football, you have to score goals and we didn’t do it.’
Bernardo Silva added: ‘Nine games to go, but it’s still better to be in our position than in Liverpool’s and they have to play in our stadium so it’s going to be exciting.’
City’s draw away to Crystal Palace left the door ajar for Liverpool to further cut the gap
April 10: Man City 2-2 Liverpool
It was almost a month later that Liverpool rolled into the Etihad for the match that Silva mentioned that night at Selhurst Park.
It was a breathless game of football but one where Liverpool were second best for the majority of the game. They needed to win to wrestle momentum completely from City, while the draw left Guardiola’s men with a one-point lead.
Kevin De Bruyne put City ahead after just five minutes but Diogo Jota equalised eight minutes later.
City reclaimed the lead in the 37th through Gabriel Jesus and took the advantage into the half-time interval. But Liverpool needed just a minute to level in the second half thanks to an excellent finish from Sadio Mane.
But still, a draw kept the title race alive. It wasn’t disastrous for Liverpool, nor the neutral.
Sadio Mane’s smart finish saw Liverpool draw 2-2 away to City in a key clash on April 10
May 7: Liverpool 1-1 Tottenham
But drawing to Tottenham at Anfield felt bad for Liverpool, even if the word ‘disaster’ is strong.
They fell behind to a Son Heung-min strike but a deflected Luis Diaz effort levelled the score.
The next day, City took full advantage, thrashing Newcastle 5-0 at The Etihad to take command once again at the summit of the Premier League. But like all good title races, there was another twist to come…
Liverpool’s draw at home to Tottenham saw the advantage swing back towards Man City
May 15: West Ham 2-2 Man City
Liverpool fans were extremely thankful that West Ham failed to make the final of the Europa League.
Had they advanced against Eintracht Frankfurt, their league clash against City would have fallen just three days before arguably the biggest match in their history. David Moyes would have surely rested some key men.
Instead, the Hammers were full strength and roared into a 2-0 lead. But City hit back with a vengeance in the second half – Jack Grealish pulled a goal back before an own goal from Vladimir Coufal hauled them level.
But City couldn’t find a winner, and it was over to FA Cup winners Liverpool and their midweek trip to Southampton. Victory for Jurgen Klopp’s men would take the title race right down to the wire on the final day of the season.
West Ham held Man City to a 2-2 draw in another surprise twist in the title race
May 17: Southampton 1-2 Liverpool
For a brief moment, the title race looked like it could have been run before the final day of the season when a Nathan Redmond strike from long range put Southampton ahead against Liverpool, who made nine changes after their FA Cup triumph.
Takumi Minamino equalised before half-time and after plenty of second half pressure, a looping Joel Matip header proved the difference and ensured Klopp’s men took all three points back to Merseyside.
To the final day it went…
Joel Matip’s header meant Liverpool beat Southampton and took the title race to the last day
May 22: Man City 3-2 Aston Villa
City’s recent title-winning experiences means they were going to breeze their way past an Aston Villa who had little to play for, right? Wrong.
With just over 20 minutes remaining, the majority of those inside the Etihad Stadium were a nervous wreck and anxiously checking their phones for news from Anfield.
Matty Cash and Philippe Coutinho had scored for Steven Gerrard’s team to leave the hosts trailing 2-0, and it seemed some had resigned themselves to waiting for Liverpool to score the goal that would see off Wolves and clinch the crown.
But then came the substitution which will go down in history, with Gundogan replacing Bernardo Silva and then inspiring a dramatic six-minute comeback with two goals either side of Rodri’s effort.
Ilkay Gundogan (left) came off the bench for Man City to help inspire a final-day comeback
Not long after Mohamed Salah did score that goals for the Reds that the Egyptian thought had handed them the title, only for a fan to inform him City had completed the turnaround to top them all.
Amid the celebrations following the full-time whistle at the Etihad, Silva said City never want to win any future Premier League title in the same dramatic fashion.
But many will hope such drama between these two heavyweights – who look set to dominate for the next few seasons at least – is a sign of things to come in terms of their tussle for English football’s greatest domestic prize.