Making his 39th appearance for the club, midfielder Ireland drove home a 78th-minute winner to hand Sheffield United a second loss in four days over the Christmas period.
The rare away win, only City's second in 10 matches on the road, means there is now daylight between themselves and the relegation zone, while United drop to 17th.
If ever there was a case for the introduction of instant replay, though, this was one of those games as referee Mark Clattenburg will not look back on his performance with too much pride.
The opening 10 minutes at Bramall Lane were certainly nothing to write home about before a bizarre period of football followed.
It started in the 11th minute, with United goalkeeper Paddy Kenny crouching down to scoop up a 30-yard drive from Ousmane Dabo.
On the second bounce, the ball reared up and hit Kenny in the face, forcing him to give chase with City striker Bernardo Corradi for the rebound.
Kenny just managed to kick the ball away via an outstretched leg, taking the Italian with him as United survived.
Then five minutes later came the first of three handball appeals, all of which should have been given.
The first of those arose after Nicky Weaver had turned aside a 20-yard drive from Stephen Quinn, resulting in a corner from Keith Gillespie.
The out swinging delivery eventually fell to Claude Davis who teed himself up for a drive that was blocked with both hands by Micah Richards.
Despite strong protests from Davis, Quinn and Michael Tonge, Clattenburg claimed the ball had come off Richards' hip.
After Weaver superbly saved a dipping 20-yard half-volley from Phil Jagielka in the 19th minute, City had the first of their penalty appeals waved aside six minutes later.
Skipping over the challenge of Davis, Joey Barton made his way to the deadball line and turned in a cross to the near post.
Darius Vassell nicked the ball goalwards, only for United captain Chris Morgan's left hand to intervene, but still there was no spot kick.
Worse followed in the 28th minute, with Rob Kozluk fortunate not to be issued with a red card for the most deliberate case of handball.
A Barton corner to the far post was headed back by Richards across the goal-line where right-back Kozluk flicked the ball away with his left hand in front of Vassell.
A number of City players voiced their protests, yet Clattenburg remained unmoved, and Kozluk stayed on the pitch.
Aside from one Kenny save, diving to his left to push away a 20-yard curled effort from Stephen Ireland, the remainder of the half petered out in front of a season-high crowd of 32,591.
Fortunately for Clattenburg, there were no further penalty appeals to deal with in a second half that was initially dominated by the Blades.
Despite intense pressure at one stage, Weaver was never troubled other than by a 20-yard drive from Chris Armstrong, who had replaced the injured Derek Geary in the 26th minute.
While Quinn also hooked a close-range effort over the crossbar, it should have been City who broke the deadlock just before the hour.
A mistake from Davis in attempting to deal with a long throw from Sylvain Distin left Georgios Samaras with only Kenny to beat from the edge of the six-yard box.
But the half-time substitute for Corradi sliced his shot so far wide it resulted in a throw to United.
The City goal then survived another onslaught in the 73rd minute, with Hulse and Jagielka headers cleared, the latter from a redeeming Samaras in front of goal.
It proved crucial as City netted the winner 12 minutes from time, with Ireland personally off the mark for the club.
A long ball from Hatem Trabelsi from inside his own half was chested down by Samaras on the edge of the area for Ireland to drive a left-foot shot into the bottom right-hand corner beyond Kenny.
Another rally followed from United in the dying stages, but City defended superbly, led by captain Richard Dunne, while Weaver made another fine stop to deny 76th-minute substitute Christian Nade.