It isn't over but this is definitely City’s normal end of year stretch run. They always play so well in the league down the stretch and it makes it so teams need to keep pace. Tough to do for a lot of teams.
Liverpool just in a rough patch, we will see if they can turn it around. Arsenal has a touch stretch of games with Villa sandwiched between two mid week QF CL games the past week plus next week. City was able to rest a little bit yesterday against Luton and I expect them to rotate again some for the SF FA Cup game against Chelsea next weekend too. I also expect them to still beat Chelsea, but that's besides the point.
Each teams PL games left against teams in the top 6 right now:
Liverpool - Villa and Spurs
Arsenal - Spurs and United
City - Spurs
Spurs can have a lot to say about the title race. Depending on this next week though, we will see who has the more hectic schedule with advancing in Europe or not. If Liverpool exit Europa, they could be the only one of the 3 that can fully focus on PL title while also getting more rest. They will need City and Arsenal to drop points though for it to even matter.