City need a point from their final match to be absolutely sure of Champions League football after they beat West Bromwich Albion 3-1 while fifth-placed Arsenal stayed in the hunt by beating relegated Sunderland 2-0.
Gabriel de Jesus, Kevin de Bruyne and Yaya Toure scored City’s goals as they moved two points above Liverpool in third.
With a superior goal difference of five to that of Arsenal, who are three points behind, it would take a big turnaround to deny City.
Liverpool will be assured of a top-four spot if they equal or better Arsenal’s result this weekend’s set of fixtures.
West Brom held out for 27 minutes at City but Gabriel and De Bruyne made it 2-0 with two goals in three minutes.
Toure then put the game beyond doubt with the third early in the second half and though Hal Robson-Kanu pulled one back late on, West Brom were well beaten.
Arsenal kept alive their hopes of finishing in the top four for a 20th consecutive year after two goals from Alexis Sanchez gave them a 2-0 win over Sunderland.
The Chilean scored in the 72nd and 81st minutes to go within a point of Liverpool and at least put some pressure on their top-four rivals.
Sunderland goalkeeper Jordan Pickford made a string of brilliant saves to deny Arsenal before Sanchez broke the deadlock from close range.
Sanchez then doubled his tally and secured the points when he headed in nine minutes later.
City are away to Watford on the final day – Monday – while Arsenal host Everton and Liverpool welcome Middlesbrough.