The following is a look back on key moments in the thrilling Premier League title race, won by Manchester City on Sunday:
Liverpool 0 Manchester City 0, Oct. 7:
Both teams went into the game unbeaten from their opening seven matches - Liverpool's six-match winning start had ended with a 1-1 draw at Chelsea, while City had the same record after a 1-1 draw at Wolves in August.
City left Anfield feeling they had let two points slip out of their hands, however, as Riyad Mahrez missed an 86th minute penalty.
With regular penalty taker Sergio Aguero having been substituted, Algerian Mahrez took the responsibility and blasted the spot kick high over the bar.
The result left the pair level with Chelsea on 20 points although City were top on goal difference with Juergen Klopp’s Liverpool side in third place.
Liverpool 3 Manchester United 1, Dec. 16:
Liverpool were held again on Nov. 3 in a 1-1 draw at Arsenal but then five wins on the bounce took them into the Dec. 16 clash with old rivals United in good form.
Klopp’s side rose to the challenge with two second-half goals from substitute Xherdan Shaqiri giving them a comfortable win in the North West derby and moving them a point ahead of City in the table.
Leicester City 2 Manchester City 1, Dec. 26:
City went into this Boxing Day clash at the King Power stadium on the back of two recent defeats. A 2-0 loss at Chelsea was followed by a far more shocking 3-2 defeat at home to Crystal Palace -- a result which raised real questions about whether Pep Guardiola's side were capable of defending their title.
Ricardo Pereira’s superb late strike made it three losses in four for City, who slipped to third in the table.
Liverpool 5 Arsenal 1, Dec. 29:
In contrast to City, the festive season saw Liverpool open up a gap at the top and the victory on Dec. 29 at home to Arsenal sent them nine points clear of second-placed Spurs.
A ninth straight win came courtesy of a Roberto Firmino hat-trick but any euphoria at Anfield was tempered by the knowledge that City awaited on Jan. 3.
Manchester City 2 Liverpool 1, Jan. 3:
The first - and so far only - defeat of the season for Liverpool transformed the title race.
Klopp's side came into the match knowing a victory would have sent them 10 points clear of City but they left the Etihad with their lead cut to four.
The game lived up to its billing with both sides showing that for all their trademark attractive football, they can go hard in a physical battle when so much is on the line.
City had key midfielders Fernandinho and David Silva back in the side and veteran skipper Vincent Kompany recalled at centre back.
Sergio Aguero put City ahead but Liverpool drew level after the break through a Firmino header. Leroy Sane, however, drove home a 72nd-minute winner for City.
West Ham 1 Liverpool 1 Feb. 4:
Liverpool stuttered for the second time in six days at London Stadium following their 1-1 draw with Leicester City.
Klopp's side failed to build on Sadio Mane's 22nd minute opener after West Ham equalised six minutes later through Michail Antonio.
Two more draws were to follow in their next two away games -- a goalless draw at Manchester United and in the Merseyside derby at Everton.
Fulham 1 Liverpool 2, March 17:
Liverpool's run of away draws ended at Craven Cottage. Although it was a scrappy 2-1 win at second bottom Fulham, it was crucial that Liverpool got back to winning ways on the road.
Mane scored his ninth league goal in as many games to open the scoring in the 26th minute. A rare error from Virgil van Dijk gifted former Liverpool winger Ryan Babel an equaliser but a James Milner penalty made sure of the three points and left Klopp's team two ahead of City, who had a game in hand.
City 1 Tottenham 0 - April 20:
Having been knocked out of the Champions League by Spurs in dramatic fashion in their quarter-final in midweek, all eyes were on City to see if they could hold their nerve on the domestic front.
Teenage midfielder Phil Foden nodded City ahead in the fifth minute and Guardiola's side battled through a nervy encounter for their 10th Premier League win in a row, which kept Liverpool a point behind.
Four days later City beat Manchester United 2-0 at Old Trafford and any thoughts of a late slump dissipated.
Newcastle 2 Liverpool 3, May 4:
This fixture, which was squeezed in between two legs of Liverpool's Champions League semi-final with Barcelona, went close to derailing their bid.
Yet with the score at 2-2 with four minutes remaining, Liverpool substitute Divock Origi's header from a Xherdan Shaqiri free kick made sure of the points and put the pressure back on City.
Manchester City 1 Leicester 0, May 6:
Just as Liverpool were close to giving up two points, so City flirted with frustration before Vincent Kompany blasted in a 25-metre winner in the 70th minute.
The result left City with a one-point advantage going into the final day of the season.
Brighton and Hove Albion 1 Manchester City 4, May 12:
After an early scare when City fell behind to Glenn Murray's 27th-minute header, Pep Guardiola's side responded in devastating fashion.
Sergio Aguero levelled 83 seconds later and Aymeric Laporte's header put City ahead before the break. Goals from Riyad Mahrez and Ilkay Gundogan completed the victory which made Liverpool's 2-0 win over Wolves irrelevant.
City finished the season with 98 points with Liverpool, beaten just once all campaign, a single point behind.