City looked bright and up for the challenge straight from the kick-off and could have been ahead on eight minutes as Joao Cancelo’s cross was glanced goalwards by Ferran Torres but Aaron Ramsdale palmed the effort away.
Raheem Sterling was a constant problem down the left for the Sheffield United defence and his clever threaded pass to Torres again produced a good save from Ramsdale as the Spaniard toe-poked an effort from close range.
As the half wore on, City’s dominance grew and on 28 minutes, the deadlock was broken with a richly deserved goal.
Sterling was the architect, wriggling away from a couple of challenges on the halfway line before heading towards goal, before finding Kevin De Bruyne who quickly played it in to the feet of Kyle Walker who fizzed a low shot into the bottom left corner.
Walker, superb all season, barely celebrated with his rare strike coming against the club he supported as a lad, and on his 100th Premier League appearance for City.
It was to be the only goal of the first half at a wet and windy Bramall Lane.
The pattern of play continued after the break but though City kept creating chances, the second goal needed for security wouldn’t come.
Riyad Mahrez was unlucky not to see his free-kick go in, with Ramsdale making another fine save and De Bruyne struck a low shot inches past the post - both before the hour mark - but so long as there was only one goal in it, the hosts were still in the hunt.
There was a slower pace to the game as time wore on, with City well on top but the hosts occasionally threatening.
Ederson very nearly had an assist to his name with an incredible 70-yard pass almost putting Sterling in on goal but the impressive Ramsdale intervened just in time with a header almost on the ground at the edge of the box.
But it was Walker’s goal – fittingly – that settled the game that was hardly a classic, but a valuable win over Blades side who will surely find their mojo before too long.