Antonio Cassano flicked in a header after 35 minutes to give Italy a 1-0 half-time lead, while Balotelli scored a spectacular volley two minutes from time after replacing Antonio De Natale on 75 minutes. Ireland midfielder Keith Andrews was sent off for a second booking at the death.
Italy began the game on two points, two behind Croatia and Spain who were playing each other in Gdansk, but initially struggled to impose themselves on an Irish team showing admirable spirit despite being out of contention after two defeats.
But after Di Natale went close twice, Cassano struck, his glancing header from Andrea Pirlo's corner being half-stopped by Shay Given bouncing over the line before Damien Duff hacked it clear.
Given, who equalled Peter Shilton's record number of 125 caps for a player from Britain and Ireland, has endured a torrid time at these European Championships and will ask himself questions about not doing better first at giving away the corner that led to the goal, when he fumbled a straightforward shot from Cassano, and then allowing the ball through his hands for the goal.
The Azzurri pressed forward at the start of the second half looking to extend their lead as Federico Balzaretti's cross into the box was turned towards goal by Di Natale, but Sean St Ledger got a crucial block in to thwart the goal-bound effort.
Gianluigi Buffon punched away Keith Andrews' 25-yard strike as the Irish pressed for the equaliser, but it played into Italy's hands as they looked to hit on the counterattack.
Balotelli, who was dropped to the bench by coach Cesare Prandelli, staked his claim for inclusion from the start for Italy's next match in the quarter-finals on Sunday against the winners of Group D when he expertly hit a volley that was behind him as it arrived in the box to secure victory as Andrews was sent off in the dying moments.
Follow us @SprtNationalUAE