Steven Fletcher scored twice as Sunderland came from behind to win a five-goal thriller and send Wigan Athletic into the bottom three.
David Vaughan's own goal gave the Latics the lead when he diverted Ronnie Stam's shot into the net.
Craig Gardner levelled with a penalty after James McCarthy handled, and Fletcher made it 2-1 from close range.
O'Neill on 'fantastic' performance
Fletcher found the top corner with an excellent strike, with Angelo Henriquez heading a consolation for Wigan.
Eighteen-year-old Henriquez, on loan from Manchester United, set up a grandstand finish at the DW Stadium.
But Wigan were once again undone by Fletcher, who has now scored six goals in seven Premier League games against them.
While Sunderland's recent problems appear behind them, Roberto Martinez's side are in trouble after another failure in front of their own fans.
The Spaniard has seen his side win one of the last 10 Premier League games and their poor home form is a cause of real concern.
This was the fifth straight top-flight game they have failed to win at the DW Stadium. In addition, Wigan are the only Premier League club yet to keep a clean sheet at home this season.
Away day joy for Sunderland
Sunderland scored three first half goals in an away match for only the second time in Premier League history and the first since 1996 - when they won 4-1 at Nottingham Forest, with all four goals coming in the opening 45 minutes.
They have been hurt by injuries to key defenders and the imminent return of Antolin Alcaraz cannot come soon enough. But it may require more than the Paraguay international to fix Wigan's problems.
Martinez's men were gifted a fourth-minute lead when Stam's mis-hit shot - following an exquisite pass by Gomez that allowed Jean Beausejour to whip in a low cross - struck Vaughan and flew into the net.
But two goals in the space of three minutes turned an entertaining match upside down.
The visitors equalised when Gardner sent Ali Al Habsi the wrong way from the spot in the 17th minute - Sunderland's first penalty in 34 matches - after James McCarthy, on his 100th Premier League appearance, handled Sebastian Larsson's free-kick.
Backed by 4,800 travelling supporters, the Black Cats were clearly starting to feel at home and they went ahead when Fletcher struck again from close range. Al Habsi kept out the Scot's 20th-minute close-range header from a cross by the lively Alfred N'Diaye - making his first top-flight start - but the striker followed up to score.
No-one else to blame - Martinez
While Sunderland were commanding and confident, Wigan stuttered. They fell further behind before half-time when £12m signing Fletcher found the top corner after collecting a pass from Adam Johnson on the edge of the area.
The hosts rallied after the interval, Shaun Maloney twice going close along with Maynor Figueroa.
Substitute Henriquez did find the net when the Chilean headed home Maloney's cross but the damage had been done and Sunderland celebrated a fourth win in six league games.
Wigan boss Roberto Martinez on his team's top-flight status:
"We never take anything for granted.
"If we had done that we would never have had eight seasons at this level. Today we weren't good enough defensively for 30 minutes. We need to rectify that.
"Ivan Ramis' injury last week cost us today's points. That is something I need to correct."
Sunderland boss Martin O'Neill:
"Fletcher was fantastic. It was not just his goals but also his whole centre forward play.
"We took great heart from his performance. We've had to show a lot of fight and determination.
"Wigan threw a lot at us but and were never out of it. It was all hands to the pump at the end and I am delighted with the result."
Roger Espinoza produces a cross, John O'Shea manages to make a clearance.
90:00 +1:28 Substitution
Substitution Ahmed Elmohamady is brought on as a substitute for David Vaughan.
Jordi Gomez produces a left-footed shot from just outside the penalty area that goes harmlessly over the target.
Maynor Figueroa fouled by Steven Fletcher, the ref awards a free kick. Maynor Figueroa restarts play with the free kick.
Jean Beausejour produces a cross, clearance made by Jack Colback.
Inswinging corner taken from the right by-line by Jordi Gomez.
Roger Espinoza delivers the ball, Mauro Boselli has a headed effort from close in and clears the bar.
A cross is delivered by Roger Espinoza, Header from close range by Angelo Henriquez clears the bar.
Substitution Phil Bardsley is brought on as a substitute for Stephane Sessegnon.
Simon Mignolet takes the free kick.
Booking The referee shows Angelo Henriquez a yellow card.
Jack Colback fouled by Angelo Henriquez, the ref awards a free kick.
Long distance shot from Maynor Figueroa misses to the left of the net.
Shaun Maloney provided the assist for the goal.
78:39 Goal scored
Goal - Angelo Henriquez - Wigan 2 - 3 Sunderland Angelo Henriquez finds the net with a headed goal from close range. Wigan 2-3 Sunderland.
Centre by Shaun Maloney,
The official flags Steven Fletcher offside. Gary Caldwell takes the free kick.
Substitution Mauro Boselli comes on in place of Franco Di Santo.
Direct effort from the free kick comes in from Jordi Gomez.
Substitution James McClean on for Adam Johnson.
Alfred N'Diaye gives away a free kick for an unfair challenge on James McCarthy.
Centre by Franco Di Santo, Craig Gardner gets a block in. Corner taken left-footed by Franco Di Santo.
Shaun Maloney produces a strike on goal direct from the free kick,
Booking Titus Bramble is booked.
Foul by David Vaughan on Shaun Maloney, free kick awarded. Direct free kick taken by Jordi Gomez. Franco Di Santo fouled by Titus Bramble, the ref awards a free kick.
Substitution (Wigan) makes a substitution, with Angelo Henriquez coming on for Emmerson Boyce.
Jordi Gomez fires a strike on goal direct from the free kick, blocked by Steven Fletcher. Inswinging corner taken by Jean Beausejour from the right by-line, Headed effort from deep inside the penalty area by Emmerson Boyce goes harmlessly over the crossbar.
Booking The referee shows Jack Colback a yellow card for unsporting behaviour.
Jack Colback gives away a free kick for an unfair challenge on Shaun Maloney.
Free kick awarded for a foul by Jack Colback on Shaun Maloney. James McArthur restarts play with the free kick.
Jean Beausejour takes the inswinging corner, Header from deep inside the area by Emmerson Boyce goes over the bar.
James McArthur takes a shot. Steven Fletcher gets a block in. Franco Di Santo takes a shot. Sebastian Larsson gets a block in.
Shaun Maloney has an effort at goal from deep inside the area missing to the left of the target.
Jean Beausejour takes the inswinging corner, Emmerson Boyce produces a header from inside the area that goes over the bar.
Booking Jean Beausejour receives a yellow card for dissent.
James McArthur takes a shot. Blocked by Steven Fletcher. Franco Di Santo takes a shot. Blocked by David Vaughan.
The ball is swung over by Jean Beausejour, John O'Shea manages to make a clearance. Inswinging corner taken left-footed by Jean Beausejour, clearance made by Titus Bramble.
A cross is delivered by Jean Beausejour, John O'Shea makes a clearance.
Alfred N'Diaye concedes a free kick for a foul on Shaun Maloney. James McCarthy takes the free kick.
The ball is swung over by Craig Gardner, Gary Caldwell manages to make a clearance.
James McArthur takes a shot. Save by Simon Mignolet.
Effort from deep inside the area by Alfred N'Diaye misses to the left of the goal.
Sebastian Larsson produces a right-footed shot from deep inside the penalty box which goes wide of the left-hand upright.
Jordi Gomez fouled by Jack Colback, the ref awards a free kick. Free kick taken by Jordi Gomez.
Shaun Maloney takes a shot. Simon Mignolet makes a fantastic save.
The ball is swung over by Emmerson Boyce, John O'Shea makes a clearance.
James McArthur takes a shot. Save by Simon Mignolet.
Jean Beausejour delivers the ball, Alfred N'Diaye manages to make a clearance.
The game restarts for the second half.
Substitution Roger Espinoza joins the action as a substitute, replacing Ronnie Stam.
45:00 +3:14 Half time
Half Time The ref blows to end the first period.
Ronnie Stam sends in a cross, Simon Mignolet makes a save. Outswinging corner taken from the right by-line by Ronnie Stam.
A cross is delivered by Shaun Maloney, Emmerson Boyce takes a shot. Save by Simon Mignolet.
Corner taken right-footed by Shaun Maloney from the right by-line, clearance by John O'Shea.
Jean Beausejour produces a cross, Adam Johnson manages to make a clearance.
David Vaughan challenges Jordi Gomez unfairly and gives away a free kick. Direct free kick taken by Gary Caldwell.
Free kick awarded for a foul by Craig Gardner on Shaun Maloney. James McCarthy restarts play with the free kick.
The assistant referee signals for offside against Jean Beausejour. Simon Mignolet takes the indirect free kick.
Adam Johnson provided the assist for the goal.
41:16 Goal scored
Goal - Steven Fletcher - Wigan 1 - 3 Sunderland Steven Fletcher finds the net with a goal from inside the penalty area to the top left corner of the goal. Wigan 1-3 Sunderland.
Free kick awarded for a foul by Maynor Figueroa on Steven Fletcher. Craig Gardner restarts play with the free kick.
Adam Johnson is adjudged to have handled the ball. Ronnie Stam takes the direct free kick.
Centre by Ronnie Stam, clearance by John O'Shea.
Unfair challenge on Maynor Figueroa by Steven Fletcher results in a free kick. Direct free kick taken by Maynor Figueroa.
Outswinging corner taken by Shaun Maloney. Jordi Gomez takes a shot. David Vaughan gets a block in. Centre by Maynor Figueroa.
Free kick awarded for an unfair challenge on Jordi Gomez by John O'Shea. James McArthur restarts play with the free kick.
David Vaughan produces a left-footed shot from deep inside the penalty area which goes wide of the right-hand post.
Maynor Figueroa takes a shot. Titus Bramble makes a clearance. Free kick awarded for a foul by Franco Di Santo on Titus Bramble. Direct free kick taken by Simon Mignolet.
Foul by Steven Fletcher on James McCarthy, free kick awarded. Direct free kick taken by Maynor Figueroa.
Alfred N'Diaye delivers the ball, clearance by Gary Caldwell.
The referee gives a free kick against Sebastian Larsson for handball. Free kick taken by Jean Beausejour.
Jordi Gomez takes a shot. Simon Mignolet makes a save.
Free kick awarded for an unfair challenge on Jack Colback by Shaun Maloney. Free kick taken by Simon Mignolet.
Shaun Maloney takes a outswinging corner.
Alfred N'Diaye provided the assist for the goal.
Free kick awarded for an unfair challenge on James McArthur by Steven Fletcher. Gary Caldwell takes the direct free kick.
Free kick awarded for an unfair challenge on Simon Mignolet by Franco Di Santo. Direct free kick taken by Simon Mignolet.
The referee penalises Craig Gardner for handball. Jean Beausejour crosses the ball from the free kick left-footed from left wing, clearance by Sebastian Larsson. James McArthur takes a shot. Sebastian Larsson gets a block in.
Free kick awarded for a foul by Maynor Figueroa on Stephane Sessegnon. Simon Mignolet takes the direct free kick.
Alfred N'Diaye produces a cross, Steven Fletcher takes a shot. Save by Ali Al Habsi.
The assist for the goal came from Alfred N'Diaye.
19:59 Goal scored
Goal - Steven Fletcher - Wigan 1 - 2 Sunderland Steven Fletcher gets on the score sheet with a goal from close in to the top right corner of the goal. Wigan 1-2 Sunderland.
David Vaughan takes a shot. Save by Ali Al Habsi.
Jack Colback fouled by Shaun Maloney, the ref awards a free kick. Free kick taken by Simon Mignolet.
Assist by Sebastian Larsson.
16:17 Goal scored
Goal - Craig Gardner - Wigan 1 - 1 Sunderland Penalty taken right-footed by Craig Gardner and scored. Wigan 1-1 Sunderland.
Sebastian Larsson produces a strike on goal direct from the free kick. James McCarthy is adjudged to have handled the ball.
Booking Emmerson Boyce goes into the book.
Free kick awarded for a foul by Emmerson Boyce on Adam Johnson.
A cross is delivered by Adam Johnson.
The ball is crossed by Jordi Gomez, clearance by John O'Shea.
Unfair challenge on Franco Di Santo by Alfred N'Diaye results in a free kick. Free kick taken by Jean Beausejour.
Headed effort from deep inside the penalty area by John O'Shea misses to the left of the goal.
Unfair challenge on Adam Johnson by Ronnie Stam results in a free kick. Free kick crossed by Sebastian Larsson.
Foul by Ronnie Stam on Adam Johnson, free kick awarded. A cross is delivered by Sebastian Larsson, Alfred N'Diaye produces a header from deep inside the six-yard box that clears the crossbar.
The referee blows for offside. Titus Bramble takes the free kick.
Ronnie Stam provided the assist for the goal.
4:00 Goal scored
Goal - David Vaughan - Wigan 1 - 0 Sunderland David Vaughan concedes an own goal. Wigan 1-0 Sunderland.
A cross is delivered by Jean Beausejour. Ronnie Stam delivers the ball.
Sebastian Larsson concedes a free kick for a foul on Jordi Gomez. Jordi Gomez takes the free kick.
The referee gets the game started.
Live text and data provided by The Press Association
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.