Wigan dominated the first half and saw one shot cleared off the line and two hit the woodwork but they went into the break behind as Craig Gardner took advantage of the swirling wind to power a 30-yard free-kick into the top corner.
James McClean extended the lead with his first Sunderland goal and, although Hugo Rodallega briefly gave Wigan hope with his first of the season, Sunderland sealed the points through Stephane Sessegnon and David Vaughan.
The hosts looked confident in the early stages, with Rodallega twice going close while Steve Gohouri’s shot beat Simon Mignolet before being cleared virtually off the goal-line by Gardner.
Sunderland, fresh from beating Manchester City on Sunday, threatened mostly on the break and Sessegnon was denied by a timely block from Antolin Alcaraz before Nicklas Bendtner just failed to get enough on a lovely cross from McClean.
Wigan still looked the more likely scorers, though, and in the 31st minute they were left cursing their luck after hitting the post twice in a matter of seconds.
First, a nice move down the left ended with David Jones racing into the penalty area and firing against the far post. The rebound fell to Ronnie Stam who found Ben Watson 15 yards out only for his shot on the turn to bounce out off the inside of the near post.
The hosts were then forced into a substitution after the lively Albert Crusat appeared to sustain a bang on the hip in a collision with Vaughan and was replaced by Victor Moses.
The left channel was certainly Wigan’s best avenue and, with the rain swirling around the ground, Mignolet produced a smart double stop to deny Jones and Maynor Figueroa.
The wind then played a major role as, having been on the back foot nearly all half and with injury time almost up, Sunderland took the lead.
Referee Mike Dean ruled Bendtner had been fouled by Watson 30 yards out despite howls of protest from the home fans and Gardner’s free-kick changed direction in the wind and found the top corner with Ali Al Habsi rooted to the spot.
As Dean walked off to a chorus of boos, Stam was shown a yellow card for taking his protests too far.
It was a scrappy start to the second half, which suited Sunderland just fine, and things got even better for the visitors in the 55th minute when they doubled their lead.
Vaughan picked out 22-year-old McClean, just onside in the middle of the box, and, although Al Habsi produced a good save from his first header, the goalkeeper could do nothing about the follow-up.
It was a first senior goal for McClean on his fifth appearance and made it nine different scorers for the nine goals netted under O’Neill.
Their two-goal advantage lasted only seven minutes, though, and for once it was Wigan who had the stroke of fortune. Rodallega’s turn on the edge of the box was sharp but his shot only beat Mignolet with the help of a big deflection off Matt Kilgallon.
Wigan’s hopes of taking something were surely extinguished in the 73rd minute, though, when Bendtner got away from Figueroa down the right and crossed for Sessegnon to convert.
The game was really open now and Watson shot just the wrong side of the post after a clever corner routine before Al Habsi backpedalled to push a chip from McClean over the bar.
Sunderland were having one of those nights and with 10 minutes to go a Sessegnon shot hit Alcaraz and rebounded to Vaughan 20 yards out who blasted a strike of the highest quality into the top corner.
The victory made it 13 points from six games for O’Neill while it brought Wigan’s run of good form to a shuddering halt as they remained stuck in the bottom three.