Mauro Boselli scored his first Wigan goal as the Latics dumped boss Roberto Martinez's ex-club Swansea out of the Carling Cup to reach the last eight.
The £6m Argentine Boselli struck after the break, capitalising on a great charging run from Antolin Alcaraz.
Ben Watson wrapped up the win in injury time from the penalty spot after Charles N'Zogbia was hacked down.
Swansea had the ball in the net in the first half but Craig Beattie was adjudged to have been offside.
Most of the build-up surrounded the reunion between Martinez and Swansea on the first meeting since the former manager walked out on them 16 months ago for the Wigan job.
Interview: Wigan manager Roberto Martinez
He was roundly jeered by the 4,500 travelling Swans fans who have largely not forgiven him for leaving after previously saying he would have to be forced out.
But for Swansea, aside from targeting revenge, a place in the quarter-finals for the first time in their history was at stake.
Both sides made wholesale changes from their respective weekend matches and it was Swans boss Brendan Rodgers' side who were almost caught out in the opening exchanges.
A mix-up between goalkeeper Yves Makalambay and his defence on the edge of the box almost let Wigan in but they managed to scramble the ball to safety.
Mohamed Diame then charged towards the visitors' goal before launching a soft shot straight at Makalambay from 20 yards.
Craig Beattie found the net but had his goal disallowed
Swansea did have the ball in the net after nine minutes when Darren Pratley split the Wigan defence to put Cedric van der Gun clean through on goal.
Dutchman van der Gun could have shot, but instead laid off to Beattie to put the ball into an empty net, but the linesman's flag was up for offside.
Soon after Pratley was involved again, looping the ball over Alcaraz and into the box, but his touch was too heavy for his supporting strikers.
The Swans lost defender Albert Serran to injury so captain Garry Monk was called from the bench.
Both sides are known for their passing football and the excellent Victor Moses caused the visitors problems down the left with his pace.
But it was Jordi Gomez who could have put Wigan ahead, first with a left-footed shot, and later sending a 20-yard free kick into the wall after Alan Tate had tripped Diame.
The hosts' best chance fell on 30 minutes, though, when Watson slipped the ball through to Boselli but Makalamby came out feet first to deny him.
Roberto Martinez shakes hands with Brendan Rodgers
Wigan were ahead six minutes after the break after Alcaraz made a great run before slipping the ball superbly through to Boselli who rounded Makalambay.
It lifted the home side who put Swansea under pressure and ex-Estudiantes striker Boselli had the chance to double the lead moments later but headed just wide from a corner.
On the hour, the Swans wall blocked Watson's free kick from a Monk foul on Moses, and Makalambay did well to push away Figueroa's 30-yard rebound which came through a crowd of players.
Wigan were very much on top by now and Boselli caught Makalambay off his line, but the ex-Chelsea stopper reacted well to push it away.
Swans proud despite Wigan defeat
Martinez threw on N'Zogbia for Gomez while Rodgers replaced Beattie with Stephen Dobbie to add something to the Swansea attack.
It was Dobbie who cut in from the left and tried to pick out David Cotterill and the near post, but Ali Al Habsi was quickest.
Swansea pushed hard to force the game into extra time, but all hopes of gaining revenge on Martinez were ended in injury time when Andrea Orlandi tripped N'Zogbia and Watson converted the penalty into the bottom corner.
Wigan manager Roberto Martinez: "You can see Mauro is a really confident finisher. A goal scorer in football is expensive and the hardest thing to find.
"He is a real asset to our football club but we need to be patient and fair with him. He is coming from a different league, different environment, different culture.
"If you look at the way he has adapted, the work-rate, the way he took the goal, it is very pleasing.
"I am sure Wigan Athletic fans will see the best of him very soon."
Swansea manager Brendan Rogers: "We are obviously disappointed with the [Beattie] goal, if you see it again, you will see that it shouldn't have been disallowed.
"It was a wonderful break, the ball has been squared and at the point of contact Craig Beattie is onside. Obviously by the time he touches it he is in a forward motion and sweeping it in.
"I'm disappointed with the referee's or the linesman's positioning, but that is how it goes.
"I was very proud of the team. We have come to a Premier League club and shown we can hold our own, if not more than that.
"We created a number of chances. I'm obviously disappointed we couldn't take them but I am very proud of the team and the support we got was phenomenal."
90:00+3:46 The referee brings the game to a close.
90:00+3:21 Ben Watson takes a shot. Save by Yves Ma-Kalambay.
90:00+2:25 Foul by Andrea Orlandi on Charles N'Zogbia, Penalty awarded.
90:00+2:25 GOAL - Ben Watson:Wigan 2 - 0 Swansea Penalty scored by Ben Watson. Wigan 2-0 Swansea.
90:00+1:46 Booking The referee cautions Andrea Orlandi for unsporting behaviour.
89:51 Corner taken by Andrea Orlandi from the left by-line, Header from deep inside the area by Garry Monk goes over the bar.
89:26 Corner taken by Andrea Orlandi from the left by-line to the near post, clearance made by Ben Watson.
89:15 Andrea Orlandi takes a shot. Blocked by Ben Watson.
87:54 Angel Rangel is ruled offside. Ali Al Habsi takes the direct free kick.
85:08 Free kick awarded for a foul by Stephen Dobbie on Hendry Thomas. Direct free kick taken by Ali Al Habsi.
82:55 Stephen Dobbie takes a shot. Save made by Ali Al Habsi.
81:57 Corner taken by Andrea Orlandi from the right by-line played to the near post, clearance made by Ben Watson.
79:25 Ben Watson has an effort at goal from outside the box which misses left.
78:45 The ball is crossed by Stephen Dobbie, save by Ali Al Habsi.
77:10 Substitution Franco Di Santo on for Mauro Boselli.
76:06 Maynor Figueroa concedes a free kick for a foul on David Cotterill. Garry Monk restarts play with the free kick.
72:38 Alan Tate challenges Mauro Boselli unfairly and gives away a free kick. Direct free kick taken by Ben Watson.
70:38 Darren Pratley fouled by Maynor Figueroa, the ref awards a free kick. Direct free kick taken by Andrea Orlandi.
69:23 Neil Taylor challenges Ben Watson unfairly and gives away a free kick. Ben Watson takes the direct free kick.
69:23 Booking Neil Taylor receives a yellow card.
68:56 A cross is delivered by Victor Moses, clearance made by Alan Tate.
67:51 David Cotterill takes a corner.
67:19 Inswinging corner taken by David Cotterill, clearance made by Ben Watson.
66:48 Andrea Orlandi is penalised for handball and concedes a free kick. Direct free kick taken by Hendry Thomas.
65:42 Substitution Charles N'Zogbia comes on in place of Jordi Gomez.
65:04 Ben Watson takes a short corner.
64:47 Mauro Boselli takes a shot. Save by Yves Ma-Kalambay.
63:25 Mohamed Diame concedes a free kick for a foul on Darren Pratley. Garry Monk takes the free kick.
61:56 Substitution Craig Beattie goes off and Stephen Dobbie comes on.
61:43 Mauro Boselli is flagged offside by the assistant referee. Yves Ma-Kalambay takes the indirect free kick.
61:30 Maynor Figueroa takes a shot. Save made by Yves Ma-Kalambay.
60:06 Garry Monk gives away a free kick for an unfair challenge on Victor Moses. Strike comes in from Ben Watson from the free kick.
60:06 Booking The referee shows Garry Monk a yellow card.
57:08 Inswinging corner taken from the right by-line by Jordi Gomez, Mauro Boselli has a headed effort at goal from close range
which goes wide of the left-hand post.
55:45 Mauro Boselli has an effort at goal from just inside the box that misses to the right of the target.
55:15 Neil Taylor concedes a free kick for a foul on Jordi Gomez. Gary Caldwell takes the direct free kick.
53:18 Victor Moses gives away a free kick for an unfair challenge on Cedric Van der Gun. Free kick taken by Angel Rangel.
52:44 Free kick awarded for a foul by David Cotterill on Victor Moses. Ben Watson takes the direct free kick.
50:57 Antolin Alcaraz provided the assist for the goal.
50:57 GOAL - Mauro Boselli:Wigan 1 - 0 Swansea Mauro Boselli finds the net with a goal from close range to the bottom right corner of the goal. Wigan 1-0 Swansea.
50:44 David Cotterill challenges Maynor Figueroa unfairly and gives away a free kick. Maynor Figueroa takes the direct free kick.
50:09 Free kick awarded for a foul by Mohamed Diame on Darren Pratley. Direct free kick taken by Andrea Orlandi.
48:49 Darren Pratley fouled by Hendry Thomas, the ref awards a free kick. Garry Monk restarts play with the free kick.
45:01 The referee blows his whistle to start the second half.
45:01 Substitution Andrea Orlandi joins the action as a substitute, replacing Kemy Agustien.
Half Time
45:00+0:59 The whistle is blown to end the first half.
43:54 Free kick awarded for an unfair challenge on Craig Beattie by Gary Caldwell. Alan Tate takes the free kick.
43:42 The referee blows for offside against Neil Taylor. Ali Al Habsi restarts play with the free kick.
40:00 Mohamed Diame concedes a free kick for a foul on Craig Beattie. Strike on goal comes in from David Cotterill from the free
kick.
38:57 Marvin Emnes takes a shot. Hendry Thomas gets a block in.
36:10 Effort from the edge of the penalty box by Mohamed Diame goes wide of the right-hand upright.
32:34 David Cotterill takes a inswinging corner to the near post, save by Ali Al Habsi.
32:16 Craig Beattie takes a shot. Blocked by Antolin Alcaraz.
31:54 Foul by Maynor Figueroa on David Cotterill, free kick awarded. Angel Rangel takes the free kick.
28:22 Mohamed Diame fouled by Alan Tate, the ref awards a free kick. Shot comes in from Jordi Gomez from the free kick, Darren Pratley
gets a block in.
28:22 Booking Alan Tate booked.
25:48 Darren Pratley fouled by Antolin Alcaraz, the ref awards a free kick. David Cotterill restarts play with the free kick.
25:48 Booking Booking for Antolin Alcaraz for unsporting behaviour.
24:58 Kemy Agustien takes a shot. Blocked by Antolin Alcaraz.
24:41 Short corner worked by David Cotterill.
24:34 Marvin Emnes sends in a cross, Antolin Alcaraz makes a clearance.
24:09 Short corner worked by David Cotterill.
22:39 Shot from outside the penalty box by Jordi Gomez goes wide right of the goal.
18:10 Substitution Garry Monk is brought on as a substitute for Albert Serran.
13:40 Foul by Kemy Agustien on Jordi Gomez, free kick awarded. Jordi Gomez has a direct shot on goal from the free kick.
12:50 Marvin Emnes is adjudged to have handled the ball. Free kick taken by Gary Caldwell.
12:05 Ben Watson crosses the ball, Yves Ma-Kalambay makes a save.
11:49 Short corner taken by Ben Watson from the left by-line.
11:05 Inswinging corner taken by Ben Watson from the left by-line played to the near post, clearance made by Craig Beattie.
9:54 Alan Tate concedes a free kick for a foul on Jordi Gomez. Direct free kick taken by Hendry Thomas.
8:41 The offside flag is raised against Craig Beattie. Free kick taken by Ali Al Habsi.
8:22 Mohamed Diame takes a shot. Yves Ma-Kalambay makes a save.
7:51 Free kick awarded for a foul by Mauro Boselli on Kemy Agustien. Alan Tate takes the direct free kick.
6:42 The ball is delivered by Ronnie Stam, Yves Ma-Kalambay makes a save.
3:50 Foul by Mauro Boselli on Marvin Emnes, free kick awarded. Free kick taken by Neil Taylor.
2:39 Unfair challenge on Kemy Agustien by Mohamed Diame results in a free kick. Free kick taken by Alan Tate.
1:35 Darren Pratley challenges Jordi Gomez unfairly and gives away a free kick. Hendry Thomas takes the direct free kick.
0:53 Cedric Van der Gun fouled by Mohamed Diame, the ref awards a free kick. Neil Taylor restarts play with the free kick.
0:00 The referee starts the match.
Live text and data provided by The Press Association.
Bookmark with:
What are these?