Zaki was a threat throughout to the Manchester City defence
Wigan overcame Manchester City in a pulsating game at the JJB Stadium which saw yet another controversial penalty.
Following Manchester United's dubious penalty on Saturday, Steve Bennett harshly adjudged City's Javier Garrido to have brought down Wilson Palacios.
Amr Zaki calmly scored the penalty to ensure Wigan grabbed all three points as they moved up to 10th position.
Luis Antonio Valencia had given Wigan the lead with a fine strike, before Vincent Kompany equalised soon after.
We lacked a cutting edge - Hughes
Manchester City manager Mark Hughes recalled record signing Robinho, who had been rested for the Carling Cup defeat at Brighton during the week, with Shaun Wright-Phillips, Garrido, Micah Richards and Joe Hart also returning.
Wigan boss Steve Bruce made two changes to the side which won 4-1 at Ipswich, and he was rewarded with a set of players who never stopped chasing down their wealthy visitors.
Republic of Ireland manager Giovanni Trapattoni, in the stands and perhaps hoping to tempt Stephen Ireland out of his international sabbatical, would have been a little bemused with City's defending in the opening period.
City should have had their wake-up call when Zaki curled a wicked shot just wide of the left upright, but two minutes later Wigan took a deserved lead.
We were the better team - Bruce
The danger seemed to be over after a weak free-kick, but the ball fell to Valencia lurking 10 yards out of the box.
Richards strangely decided against closing down the Ecuador winger, and after a cute dummy, the ball was soon rippling the back of the net after a stunning strike.
But Bruce would have been tearing his hair out as Wigan contrived to aid City's route back into the match.
Just one after the Latics took the lead, they allowed Robinho to run clean through, but he shot tamely shot wide. After another four minutes City were level.
Following good work from Wright-Phillips on the right, Palacios failed to deal with Elano's free-kick, leaving Kompany to knock in a simple volley.
And so it was left to another highly debatable penalty decision to change the course of the match.
Garrido clashed with Palacios but there appeared to be only limited contact and certainly not enough to justify the Honduran's theatrical fall to the ground.
Zaki calmly slotted the ball over the diving Hart to score his fifth Premier League goal this season.
The noise in the stadium increased several hundred decibels as Hughes was left fuming on the touchline.
City piled on the pressure in the second half and Brazil's Elano almost equalised with a ferocious drive dipping just wide on the hour.
Ireland fluffed a one-on-one and Wright-Phillips was denied after a great save from the impressive Chris Kirkland.
There were more question marks over another penalty claim as Wright-Phillips was bundled over in the box by Titus Bramble.
With Robinho a fading influence in the latter stages and the Wigan players continuing to battle for every second ball, it was the home supporters who celebrated a hard-fought three points.
Wigan boss Steve Bruce on Amr Zaki and Emile Heskey: "They were awesome up front. When you play against Richard Dunne and Micah Richards you know you are going to take a physical battering.
"Zaki played with enormous appetite, he is as strong as a bull, and Dunne and Richards know they have been in a game.
"He has the same physique as Mark Hughes, he's that sort of type."
Manchester City boss Mark Hughes on referee Steve Bennett: "He got the penalty wrong, it was just a coming together and their lad (Wilson Palacios) dived theatrically.
"Then he missed Richard Dunne when he was clearly impeded (by Emile Heskey) in their box. I felt there were a few decisions that were a bit mystifying.
"We are disappointed - we expected to get something out of the game."
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.