Premier League: Liverpool 2 Man City 1
With Chelsea playing in the League Cup final later in the day, City could have moved within two points of the leaders, but Coutinho's stunning strike instead ensured Liverpool claimed a crucial victory in their bid for a top-four finish.
Jordan Henderson brought the game to life after 11 minutes with his third league goal of the season for the hosts, the 24-year-old finding the top corner from 20 yards.
City were level midway through the half as Edin Dzeko calmly converted his 50th Premier League strike from a sublime Sergio Aguero pass.
After such an action-packed 45 minutes, the second half struggled to reach similar heights until Coutinho took centre stage 15 minutes from time, the Brazilian curling home from the left-edge of the penalty area.
Manuel Pellegrini's side pushed for a second equaliser, but to no avail and City remain five points behind Chelsea having played a game more, while Liverpool are up to fifth.
A frenetic start was dominated by Liverpool – who made four changes from their defeat to Besiktas on Thursday – with Adam Lallana twice going close.
Lallana's first effort was saved by Joe Hart after a superb pass from Coutinho and, although the second beat the City goalkeeper, it was ruled out for offside.
Any disappointment quickly faded, though, as Henderson arrowed in a fine strike from the edge of the penalty area after 11 minutes.
Coutinho was again involved as he robbed Vincent Kompany before combining with Raheem Sterling to get the ball to Henderson, the Liverpool captain giving Hart no chance with a powerful shot into the top-right corner.
City – who also made four changes following midweek European disappointment against Barcelona – responded strongly, Aguero sending a low drive against the post a minute after Henderson's opener.
The champions continued to press and a crisp passing move involving Yaya Toure, David Silva and Aguero saw Dzeko bring them level after 25 minutes.
The striker collected a perfectly weighted reverse pass from strike partner Aguero before firing past Simon Mignolet from 12 yards.
Lallana had a chance to restore Liverpool's lead before the break from a chipped Lazar Markovic pass, but pulled his effort wide of Hart's goal.
Both sides wasted chances early in the second half as Aguero and Sterling failed to convert from inside the penalty area, while Lallana had a second effort ruled out by the assistant referee.
Silva then spurned a promising position for City with an over-hit free-kick.
That proved to be costly as Liverpool finally made their possession pay, Coutinho cutting in from the left, evading the challenge of Samir Nasri and Pablo Zabaleta to secure the win.
Aguero went agonisingly close to earning City a point with a low effort after 79 minutes, but the visitors were unable to find a second goal and handed the advantage to Chelsea in the race for the title.