City are now unbeaten this season and manager Roberto Mancini was pleased to get the better of a side he has a lot of respect for.
“I am happy. We didn’t play very well in the first half, we know Wigan are a good team,” he said.
On his changes, he added: “Wigan play with three defenders and two in the channels. I wanted to put players in the same positions as them and when we changed it, we scored the first goal. After that, the match changed.”
City took time to warm up and Wigan had several chances before Balotelli, moments after a bad miss, changed the game 21 minutes from time with his first Barclays Premier League goal since March.
Milner — who later suffered a hamstring injury, was not long on the field before he doubled the lead with a superb strike before being forced off.
The result extended City’s unbeaten Premier League run to 20 matches and kept them within a point of leaders Manchester United.
Balotelli was making his first start in six matches and, after a mostly frustrating night, eventually justified Roberto Mancini’s selection of him ahead of Edin Dzeko.
City were the first to go close when Maicon charged down the right and fired narrowly over from a tight angle.
Wigan threatened on the counter-attack after a City move broke down and Franco di Santo released Arouna Kone, whose long-range shot was grabbed by Joe Hart at the second attempt.
Wigan played their confident brand of football and Jean Beausejour created a chance by cutting inside Maicon, but his desire to shoot with his left foot gave Vincent Kompany time to block.
After being shaded in the first half, City upped the tempo and looked a much stronger proposition after the break.
Balotelli sent a free-kick over and Gareth Barry felt he was impeded by Stam after getting into the area in the hope of getting on the end of a cross.
Yaya Toure then blazed over before Balotelli was guilty of a glaring miss when he headed wide from close range at the far post from an inch-perfect Maicon cross.
City then had a let-off as an unmarked Kone headed wide from a James McCarthy cross and Gomez also missed the target.
The champions needed to respond again and this time they did so decisively.
Al Habsi was unable to hold Barry’s low strike from the edge of the area in the 69th minute and Balotelli was quick to react.
The Italian’s first effort was blocked, but he made no mistake with the second chance and he emphatically tucked away his third goal of the season in all competitions.
City put the result beyond doubt just three minutes later as substitute Milner, brought on for the ineffective Javi Garcia, found the top corner with a stunning long-range strike.
City midfielder Gareth Barry said he was pleased to grind out a victory.
“We found it quite tough going in the first half, we had some stray passes but we ground it out in the second half and that’s a great three points,” Barry said.
“Credit to Wigan, we had to change things to get past them. A lot of teams come to Wigan and don’t get results,” he said.
For the hosts’ part, manager Roberto Martinez said he was thrilled with the application. “The performance off the ball was magnificent,” he said. “The organisation was strong and for 60 minutes we were in the game.
“The disappointment is that we weren’t ourselves on the ball and couldn’t express ourselves. The lesson for us is that we need to be ourselves.”
WIGAN: Al Habsi, Stam (McManaman 90), Boyce, Lopez, Figueroa, McCarthy, Jones (McArthur 74), Gomez, Kone, Beausejour, Di Santo.
MAN CITY: Hart, Maicon, Kompany, Nastasic, Zabaleta, Javi Garcia (Milner 59), Toure ,Silva, Barry, Aguero (Kolarov 68), Balotelli, Milner (Toure 81).
Referee: Mark Halsey (Lancashire).