Manchester City kept up the pressure on title rivals Chelsea as they beat Stoke to stay three points behind the Premier League leaders.
The hosts had struggled to break down their stubborn opponents and almost went behind when Charlie Adam had a shot palmed wide by keeper Joe Hart.
But the unconvincing home side broke the deadlock when Yaya Toure swept in a low Aleksandar Kolarov cross.
Edin Dzeko should have doubled the lead but mistimed a shot from four yards.
Man City 1-0 Stoke City: Manuel Pellegrini says getting win was crucial
The hosts knew the importance of a victory over Stoke, having seen title rivals
Chelsea beat Everton
in the early kick-off, yet lacked the urgency they might have been expected to show until Toure's effort.
The Ivory Coast international's goal came moments after manager Manuel Pellegrini had replaced injured substitute Stevan Jovetic - who managed only 13 minutes - with Javi Garcia, and pushed Toure further up the pitch.
Defeat means Stoke, who have now gone 11 league matches without a clean sheet, are just three points above the relegation zone.
However, they can take some consolation from a resolute display that saw them give their hosts, who appeared to be feeling the effects of a midweek Champions League
defeat by Barcelona,
two early scares.
First Potters defender Ryan Shawcross glanced a header wide from a free-kick before midfielder Adam had a low, angled strike from long range touched wide by Hart.
Stoke boss Mark Hughes, a former manager at the Etihad Stadium, had set his side up to frustrate the hosts by defending deep, and the ploy was proving a success.
Jonathan PearceBBC Match of the Day commentator
"Yaya Toure's goal won it seconds after a tactical change by the manager. The switch paid off for a very important and hard-won victory."
Pellegrini's side have been finding the free-flowing football and abundant goals that have marked their season harder to come by in recent games and rarely threatened.
The closest they came before the break was when Dzeko gathered a David Silva pass, played a one-two with Alvaro Negredo and curled a 22-yard shot just wide.
Dzeko also sent a 10-yard effort high after the interval before Pellegrini tried to kick-start his side by bringing on Jovetic for the ineffectual Negredo.
Jovetic had a fizzing 25-yard shot saved before he was in turn removed, and replaced by defensive midfielder Garcia in a switch that turned the game.
Almost immediately, Toure arrived in the Stoke area and was on hand to finish a move that involved Samir Nasri and Kolarov in the build-up.
Playing with more freedom after the goal, the home side should have extended their lead when Jesus Navas squared the ball across for Dzeko, only for the forward to get his feet tangled and miss from close range.
Manchester City manager Manuel Pellegrini:
"Stoke were defending with 10 players in their box. It was very important to be concentrated for counter-attacks and set pieces. Both things were important, to keep a clean sheet and to be patient.
Man City 1-0 Stoke City: Mark Hughes says defeat not damaging
"I thought we controlled the game and it was a matter of time before we scored.
"Stevan Jovetic felt his hamstring so we will see what the doctor says.
"We will see about Sergio Aguero. He will start working with the team on Tuesday. We will see during the team if he is fit to play in the Capital one Cup final."
Stoke boss Mark Hughes:
"We are disappointed because we put in a huge effort. We were excellent in the first half.
"We came here with a gameplan and we executed it really well.
"I thought we were a threat on the break when we regained possession and out of possession we were organised. They found us really hard to break down.
"In the end, we have just made a couple of errors which led to the goal and they were grateful to get the goal and the three points."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.