City's inconsistent season continued as they drew 1-1 at home with Hull, who moved out of the bottom three.
Meyler put Hull in front 10 minutes before half-time and, though Milner spared City's blushes with a superb free kick in the 90th minute, the champions dropped two more points in the title race.
At White Hart Lane, Harry Kane secured himself hero status at Tottenham with both goals in a 2-1 win over Arsenal, dropping the Gunners to sixth.
Mesut Oezil put Arsenal in front early on but Kane equalised early in the second half and found the winner four minutes from time to lift Tottenham above Arsenal into fifth.
"The fans were incredible, the atmosphere was like lightning and I will remember this for the rest of my career," Kane said.
"My first London derby, and to win the way we did by digging deep, it's incredible. I probably won't sleep tonight."
Arsenal manager Arsene Wenger rued his side's lack of creativity.
"The first goal was a cheap goal and they didn't create a lot," he said. "But we didn't produce enough."
Wenger said the result was a blow to their hopes of a top-four spot but that his side remained more than capable of achieving it.
"We have played two more away games than Spurs, who have played 13 at home and 11 away," he said. "It's down to our home form now."
Sadio Mane scored in injury time to give Southampton a 1-0 win at Queens Park Rangers and put them clear in third on their own.
Crystal Palace moved further away from trouble thanks to a 1-0 win at bottom side Leicester while Swansea drew 1-1 with Sunderland.
Liverpool's draw damages their Champions League hopes - they are four points behind fourth-placed Manchester United, who can move further away from Brendan Rodgers' side with a win against West Ham on Monday.
- AAP