Swansea City have reached the semi-finals of the League Cup for the first time in their history after a Seb Hines own goal ended Middlesbrough's hopes.
Boro looked dangerous for large parts, with captain Grant Leadbitter denied three times by keeper Gerhard Tremmel.
Swansea gradually improved and Jonathan de Guzman's free-kick was tipped onto the bar by a fine Jason Steele save.
Hines then rose to head into his own net from a corner to send Swansea to their first League Cup semi-final.
The Championship visitors will feel they deserved better after coping comfortably with Swansea's attacks for the majority of the game.
And they came within inches of forcing the match into extra-time as Ishmael Miller's low cross evaded Scott McDonald at the far post.
"It's the sign of a good side if you don't play well but you win the game of football. Swansea wee nowhere near the team that beat the Arsenal at the Emirates, Their last two performances have not being convincing but they are still through to the last four."
Swansea may well be collecting notable scalps in a second impressive Premier League season, but manager Michael Laudrup wants to win silverware.
No trophies are awarded to teams who finish in mid-table, he said, but cup competitions can open avenues to success for clubs adrift in the title race.
And after Arsenal's shock defeat to League Two side Bradford City 24 hours earlier, Swansea's prospects of ending a 100-year wait for one of England's major trophies now appear greater than ever.
This was no easy passage for the Swans, though. They lacked intensity and desire, and hardly looked likely to unlock a disciplined Boro defence.
The winning goal came after Swansea's only dominant period of the match, which began with the introduction of midfielder Ki Sung-Yeung.
Another substitute, Luke Moore, and Michu had shots blocked in the area as they finally exerted some pressure, before Steele produced a wonderful save to tip De Guzman's free-kick onto the bar.
A flurry of corners followed and the unfortunate Hines got his attempted header all wrong as he somehow managed to face his own goal while rising to challenge Garry Monk.
Middlesbrough manager Tony Mowbray was unashamedly honest in suggesting this tie was a distraction from the serious business of searching for promotion to the Premier League.
But there was nothing half-hearted about his side's performance. They almost caught Swansea cold after just 30 seconds when Leadbitter was denied by Chico Flores and then failed to make the most of the rebound.
Leadbitter then had the only other notable chances of a subdued first half.
His low drive forced Tremmel to save at full stretch but he then fired straight at the keeper from inside the area.
Those missed opportunities proved to be costly as Swansea finally stirred from their slumber in the final 20 minutes, and Hines' unfortunate intervention gave the visitors little time to find a response.
- 25 Tremmel
- 04 Chico
- 16 Monk
- 21 Tiendalli
- 33 Davies
- 07 Britton
- 09 Michu
- 12 Dyer
- 15 Routledge (Ki Sung-Yeung - 65' )
- 20 De Guzman
- 17 Shechter (Moore - 55' )
- 13 Cornell
- 02 Bartley
- 22 Rangel
- 24 Ki Sung-Yeung
- 26 Agustien
- 10 Graham
- 19 Moore
- 01 Steele
- 02 Hoyte
- 03 Bikey (Halliday - 64' )
- 04 Friend
- 15 Hines
- 07 Leadbitter Booked (Miller - 82' )
- 10 Bailey Booked
- 38 Haroun (Smallwood - 65' )
- 11 Ledesma
- 17 Jutkiewicz
- 27 McDonald
- 32 Leutwiler
- 21 Parnaby
- 08 Thomson
- 18 Halliday
- 33 Smallwood
- 09 Emnes
- 30 Miller
Live Text Commentary
Centre by Ishmael Miller.90:00 +4:32 Full time
Full Time The game is over, as the referee blows his whistle.90:00 +2:18
Luke Moore produces a right-footed shot from deep inside the penalty area which goes wide of the right-hand post.90:00 +1:37
The ball is delivered by Emmanuel Ledesma, clearance made by Dwight Tiendalli.89:54
The referee gives a free kick against Lukas Jutkiewicz for handball. Direct free kick taken by Gerhard Tremmel.89:25
Foul by Leon Britton on Richard Smallwood, free kick awarded. Jason Steele restarts play with the free kick.86:30
George Friend has a drilled shot. Save by Gerhard Tremmel. Inswinging corner taken from the left by-line by Scott McDonald. Foul by Nicky Bailey on Gerhard Tremmel, free kick awarded. Direct free kick taken by Gerhard Tremmel.86:19
Emmanuel Ledesma delivers the ball, clearance made by Chico.83:13
Andrew Halliday gives away a free kick for an unfair challenge on Dwight Tiendalli. Jonathan de Guzman takes the direct free kick.82:25
Ishmael Miller takes a shot. Save made by Gerhard Tremmel.81:46 Substitution
Substitution Ishmael Miller joins the action as a substitute, replacing Grant Leadbitter.80:12
Jonathan de Guzman provided the assist for the goal.80:12 Goal scored
Goal! - Seb Hines - Swansea 1 - 0 Middlesbro Headed own goal by Seb Hines. Swansea 1-0 Middlesbrough.79:55
Inswinging corner taken from the left by-line by Jonathan de Guzman,79:08
Corner from the left by-line taken by Jonathan de Guzman, Nicky Bailey makes a clearance. Inswinging corner taken by Jonathan de Guzman from the left by-line, clearance by George Friend.77:56
Unfair challenge on Nathan Dyer by Scott McDonald results in a free kick. Direct free kick taken by Nathan Dyer.72:48
Jonathan de Guzman shoots direct from the free kick, save by Jason Steele. Free kick awarded for a foul by Miguel Michu on Nicky Bailey. Jason Steele restarts play with the free kick.72:48 Booking
Booking Nicky Bailey shown a yellow card.72:43
Nicky Bailey gives away a free kick for an unfair challenge on Nathan Dyer.71:41
Dwight Tiendalli delivers the ball, Miguel Michu takes a shot. George Friend gets a block in. Corner taken by Jonathan de Guzman, clearance made by George Friend.
Ben Davies sends in a cross, clearance by Seb Hines.68:41
Nicky Bailey gives away a free kick for an unfair challenge on Jonathan de Guzman. Leon Britton restarts play with the free kick.66:53
Jonathan de Guzman has an effort at goal from 20 yards. Comfortable save by Jason Steele.63:33
Corner taken by Jonathan de Guzman from the left by-line to the near post, Nicky Bailey manages to make a clearance.63:33 Substitution
Substitution Sung-Yeung Ki replaces Wayne Routledge.63:33 Substitution
Substitution Richard Smallwood comes on in place of Faris Haroun.63:33 Substitution
Substitution Andrew Halliday replaces Andre Bikey.61:03
The ball is sent over by Wayne Routledge, save made by Jason Steele.60:11
A cross is delivered by Emmanuel Ledesma, Lukas Jutkiewicz produces a header from inside the area that goes over the crossbar.59:06
The ball is sent over by George Friend, clearance made by Garry Monk. Corner taken by Grant Leadbitter from the left by-line to the near post, Miguel Michu manages to make a clearance.56:12
A cross is delivered by Emmanuel Ledesma.55:07
Wayne Routledge concedes a free kick for a foul on Justin Hoyte. Jason Steele takes the direct free kick.54:15
Garry Monk takes the direct free kick.54:15 Substitution
Substitution Itay Shechter goes off and Luke Moore comes on.54:15
Free kick awarded for an unfair challenge on Leon Britton by Faris Haroun.51:44
The ball is sent over by Ben Davies, Seb Hines manages to make a clearance.51:08
Shot from 20 yards from Grant Leadbitter. Save made by Gerhard Tremmel.48:59
Justin Hoyte produces a right-footed shot from just outside the box that misses to the right of the net.48:05
Outswinging corner taken by Jonathan de Guzman from the right by-line played to the near post, Justin Hoyte makes a clearance.46:14
Corner taken by Grant Leadbitter, Gerhard Tremmel makes a save.45:01
The second half begins.45:00 +1:07 Half time
Half Time The ref blows to signal half-time.43:47
Miguel Michu produces a drilled left-footed shot from 20 yards. Blocked by Andre Bikey. Jonathan de Guzman takes a inswinging corner from the left by-line to the near post, Andre Bikey manages to make a clearance. Inswinging corner taken by Jonathan de Guzman from the left by-line, clearance by Nicky Bailey.43:06
Shot by Nathan Dyer. Comfortable save by Jason Steele.42:28
Free kick taken by Miguel Michu.42:28 Booking
Booking Grant Leadbitter receives a yellow card for unsporting behaviour.42:21
Grant Leadbitter concedes a free kick for a foul on Ben Davies.36:09
Inswinging corner taken left-footed by Emmanuel Ledesma from the right by-line, clearance made by Garry Monk.35:09
Effort on goal by Grant Leadbitter from 12 yards. Gerhard Tremmel makes a save. Miguel Michu gives away a free kick for an unfair challenge on Nicky Bailey. Emmanuel Ledesma takes the direct free kick.34:35
George Friend gives away a free kick for an unfair challenge on Dwight Tiendalli. Gerhard Tremmel takes the direct free kick.33:55
Ben Davies sends in a cross, Nathan Dyer takes a shot. Save by Jason Steele.32:36
Outswinging corner taken by Jonathan de Guzman, clearance by Lukas Jutkiewicz.29:17
Foul by Andre Bikey on Miguel Michu, free kick awarded. Dwight Tiendalli restarts play with the free kick.25:38
Centre by Emmanuel Ledesma, clearance made by Jonathan de Guzman.23:15
Unfair challenge on Andre Bikey by Miguel Michu results in a free kick. Free kick taken by Seb Hines.20:13
The ball is swung over by George Friend, Grant Leadbitter takes a shot. Save made by Gerhard Tremmel.18:03
George Friend produces a cross, Chico manages to make a clearance. Effort on goal by Nicky Bailey from long range goes harmlessly over the bar.16:18
Itay Shechter challenges Seb Hines unfairly and gives away a free kick. Seb Hines takes the direct free kick.15:31
The referee blows for offside against Dwight Tiendalli. Jason Steele restarts play with the free kick.13:31
The ball is crossed by Wayne Routledge, clearance by Andre Bikey.9:52
Scott McDonald concedes a free kick for a foul on Nathan Dyer. Dwight Tiendalli takes the free kick.9:01
Lukas Jutkiewicz takes a shot. Save made by Gerhard Tremmel.5:45
Miguel Michu has an effort at goal. Seb Hines gets a block in.2:18
Foul by Faris Haroun on Chico, free kick awarded. Direct free kick taken by Leon Britton.0:00
The referee gets the game started.
Live data and text provided by our data suppliers