Franco Di Santo fired the Latics – who last week beat leaders Manchester United – ahead on the break after seven minutes, before Jordi Gomez doubled their lead inside 90 seconds.
Thomas Vermaelen reduced the deficit with a bullet header on 21 minutes, but the second-half onslaught from the shellshocked Gunners never came as the Latics climbed to 16th place.
It had been a bright start by Arsenal, who were looking to tighten their grip on third place, as Yossi Benayoun forced Ali Al Habsi into a fingertip save from his close-range header.
The Latics had brought a small following of only some 200, who had perhaps travelled more in hope than genuine expectation.
However, it was the visitors who took a shock lead on seven minutes.
Wigan broke quickly from an Arsenal corner through Gomez down the left, who clipped the ball through to the on-rushing Di Santo.
Goalkeeper Wojciech Szczesny raced to the edge of his area, but was beaten to the ball and the Wigan striker went on to knock into an empty net.
Before the away support had time to calm down, they were in dreamland again less than 90 seconds later.
This time Victor Moses did the damage down the left, turning Bacary Sagna inside out, with his cross not gathered by Szczesny – and Gomez was on hand to scramble the loose ball over the line.
Emirates Stadium was left in stunned silence, with midfielder Mikel Arteta then limping off injured and replaced by Ramsey in the ninth minute.
Arsenal – who had won nine of their last 10 Premier League games – needed a response.
Benayoun was again denied by a fine one-handed save from Al Habsi as he looped Rosicky’s cross towards the top corner.
The Gunners halved the deficit on 21 minutes when Vermaelen crashed in a bullet header from 12 yards after Rosicky’s right-wing cross.
Al Habsi was alert again to beat away Robin van Persie’s fierce drive as Arsenal pressed forward, centre-half Johan Djourou then dragging his shot just wide from the edge of the Wigan penalty area.
Arsenal maintained their momentum, and Rosicky should have done better than sky the ball high over the crossbar after being played in by Van Persie.
Wigan, who were unfortunate to lose at Chelsea amid some controversial decisions, continued to defend deep with two banks of four and made the most of any stoppages – much to the frustration of Gunners boss Arsene Wenger.
Arsenal came out on the offensive at the start of the second half, with Andre Santos’ shot deflecting just away from Van Persie and then Theo Walcott.
Wigan, though, stuck to their game plan of organised defending, while also looking to break quickly down the flanks.
Moses was a real handful for Sagna, and got away again into the Arsenal box on 52 minutes before forcing Szczesny into a reaction save.
Vermaelen headed over from Van Persie’s corner, before Santos stabbed a cutback by his captain wide from six yards when he really should have hit the target.
Moses could have extended Wigan’s advantage when put through on 59 minutes, but shot tamely at Szczesny.
Wenger had seen enough, replacing Benayoun with Gervinho to inject some fresh life into the attack.
There was then a stoppage as Di Santo and Sagna clashed heads, fortunately both were able to continue.
Arsenal stepped up the pressure again, but once more the Wigan rearguard stood firm.
With 16 minutes left, Wenger sent on teenager Alex Oxlade-Chamberlain, sacrificing Djourou as Alex Song dropped into the back four. Wigan responded by replacing Di Santo with Conor Sammon.
Gervinho was switching flanks intermittently, and his ball from the left floated across the face of goal.
Maynor Figueroa appeared to barge Walcott over as the Arsenal forward scampered away down the right, but referee Andre Marriner waved play on.
There was five minutes of stoppage time, but despite plenty of Arsenal pressure, Wigan held out for a deserved win, their first at Emirates Stadium, which could just keep them in the Premier League.