Goals from Alexander Kacaniklic, Dimitar Berbatov and Urby Emanuelson eased Fulham to an impressive victory at Swansea and ended their seven-match winless run.
Kacaniklic's instinctive 22nd-minute finish beat Michel Vorm to put the visitors ahead against the run of play.
Swansea dominated the second half and Pablo Hernandez was twice denied by Mark Schwarzer.
But Fulham secured the points with late strikes from Berbatov and Emanuelson.
Capital One Cup winners Swansea, who had already guaranteed a top-10 finish, knew a home victory plus defeat for West Brom at home to Manchester United would secure eighth spot, while Fulham were targeting a first win since beating QPR on 1 April, with manager Martin Jol challenging his side to end an increasingly difficult season on a high.
Accordingly, the game at the Liberty Stadium did not have quite the air of an end-of-season dead rubber. Both sides started positively and the Cottagers had the first opportunity when Kacaniklic's pass found Bryan Ruiz, who fluffed his shot.
Ruiz was back in the action when he was fouled by Chico Flores on the edge of the area, but John Arne Riise's free-kick powered wide.
Hernandez fired inches wide for the hosts following good work by Nathan Dyer, who himself saw an effort blocked, and Hernandez then capitalised on a poor clearance by Philippe Senderos but dragged his shot off-target as the Swans took hold of the game.
But it was Fulham who made the breakthrough. Ruiz and Berbatov combined to put Kacaniklic in and the Swedish winger coolly fired beyond Vorm for his fourth league goal of the season.
Kacaniklic forced Vorm to deflect a shot onto the post as he remained a threat, but Dyer saw a dipping effort go over the crossbar and Schwarzer denied Jonathan De Guzman as Swansea finished the half strongly.
After the break, the visitors' 40-year-old keeper made further saves to deny Ashley Williams, Flores, De Guzman and Routledge and twice thwarted the lively Hernandez during a spell of sustained pressure by the home side.
But despite Swansea's domination in the second half, Fulham doubled their lead.
With 13 minutes remaining, Ruiz set up Berbatov who rounded Vorm before slotting into an empty net for his 15th league goal of the season.
Substitute Emanuelson rounded things of, pouncing from close rang after Vorm could only parry Giorgos Karagounis's effort.
Fulham's fourth league away win saw them finish in 12th place, three points behind their hosts in ninth.
Swansea City manager Michael Laudrup:
"It was disappointing, but the difference was us not taking our chances.
"For 30 minutes in the second half we could have scored two or three. But I am sure in a couple of days I will see the big picture.
"Everyone here says it is the best season ever for this club. I have only been here 10 or 11 months so I will I trust their judgement."
Fulham manager Martin Jol:
"I am ambitious like Fulham are, I want us to be in the top six, the top seven or the top eight.
"When I came here we had a fantastic team and we got 52 points, and look at where Swansea are today with 46 [ninth place in the table].
"We do not want to repeat this season, only getting around 40 points, but we need good players, ambitious players and that is what I want.
"If eight or nine players leave us this summer we will need five or six players."
- 01 Vorm
- 04 Chico
- 06 Williams
- 22 Rangel
- 33 Davies (Taylor - 81' )
- 07 Britton
- 09 Michu Booked
- 11 Pablo Booked (Shechter - 74' )
- 12 Dyer
- 15 Routledge
- 20 De Guzman (Agustien - 80' )
- 25 Tremmel
- 03 Taylor
- 16 Monk
- 21 Tiendalli
- 26 Agustien
- 14 Lamah
- 17 Shechter
- 01 Schwarzer
- 03 Riise
- 04 Senderos
- 05 Hangeland
- 27 Riether Booked
- 12 Frimpong (Karagounis - 67' )
- 16 Duff (Emanuelson - 73' )
- 31 Kacaniklic
- 33 Enoh
- 09 Berbatov (Rodallega - 87' )
- 11 Ruiz
- 38 Etheridge
- 18 Hughes
- 14 Karagounis
- 21 Frei
- 28 Emanuelson
- 10 Petric
- 20 Rodallega
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +3:18
Alex Kacaniklic takes a shot. Save made by Mark Schwarzer.90:00 +2:53
The assist for the goal came from Alex Kacaniklic.90:00 +2:53 Goal scored
Goal! - Urby Emanuelson - Swansea 0 - 3 Fulham Urby Emanuelson grabs a goal from inside the penalty area low into the middle of the goal. Swansea 0-3 Fulham.90:00 +1:57
Unfair challenge on Giorgos Karagounis by Itay Shechter results in a free kick. Direct free kick taken by John Arne Riise.90:00 +0:51
Alex Kacaniklic takes a shot. Hugo Rodallega takes a shot. Blocked by Philippe Senderos.89:51
Free kick awarded for an unfair challenge on Alex Kacaniklic by Chico. Bryan Ruiz takes the free kick.88:46
John Arne Riise takes the direct free kick.88:46 Booking
Booking Caution for Miguel Michu.88:38
Unfair challenge on Alex Kacaniklic by Miguel Michu results in a free kick.88:28
Wayne Routledge produces a cross, save made by Mark Schwarzer.86:49 Substitution
Substitution Hugo Rodallega joins the action as a substitute, replacing Dimitar Berbatov.85:40
The offside flag is raised against Kemy Agustien. Mark Schwarzer restarts play with the free kick.83:40
Shot on goal by Nathan Dyer from just inside the area clears the crossbar.82:58
Foul by Dimitar Berbatov on Kemy Agustien, free kick awarded. Kemy Agustien takes the direct free kick.81:33
The ball is swung over by Ashley Williams.79:57 Substitution
Substitution Neil Taylor is brought on as a substitute for Ben Davies.79:57 Substitution
Substitution Kemy Agustien is brought on as a substitute for Jonathan de Guzman.78:33
Free kick awarded for a foul by Urby Emanuelson on Ben Davies. Ben Davies restarts play with the free kick.76:53
Assist by Bryan Ruiz.
Goal! - Dimitar Berbatov - Swansea 0 - 2 Fulham A goal is scored by Dimitar Berbatov from deep inside the penalty box low into the middle of the goal. Swansea 0-2 Fulham.76:17
Wayne Routledge concedes a free kick for a foul on Urby Emanuelson. Giorgos Karagounis restarts play with the free kick.73:59 Substitution
Substitution (Swansea) makes a substitution, with Itay Shechter coming on for Pablo Hernandez.73:30
Leon Britton produces a right-footed shot from just outside the penalty box that misses to the left of the target.72:40 Substitution
Substitution Urby Emanuelson replaces Damien Duff.71:53
Inswinging corner taken by Jonathan de Guzman from the left by-line, clearance made by Brede Hangeland.70:38
The ball is crossed by Nathan Dyer, Header from deep inside the area by Miguel Michu goes over the bar.69:50
Pablo Hernandez has an effort at goal from the edge of the box that misses to the right of the target.68:38
Angel Rangel takes a shot. Save made by Mark Schwarzer.66:49 Substitution
Substitution Giorgos Karagounis joins the action as a substitute, replacing Emmanuel Frimpong.65:40
The ball is crossed by Wayne Routledge, Philippe Senderos manages to make a clearance.63:53
Centre by Ben Davies, Mark Schwarzer makes a save.62:22
Leon Britton takes a shot. Save by Mark Schwarzer. Short corner taken by Wayne Routledge.61:51
Pablo Hernandez takes a shot. Save made by Mark Schwarzer. Corner taken right-footed by Jonathan de Guzman from the left by-line, Brede Hangeland manages to make a clearance.61:22
The ball is delivered by Angel Rangel, clearance by Brede Hangeland.59:22
Pablo Hernandez takes a shot. Mark Schwarzer makes a save.58:12
Effort from inside the six-yard box by Wayne Routledge goes wide right of the target.57:35
Centre by Angel Rangel, clearance made by Sascha Riether.55:55
Jonathan de Guzman takes a shot. Save by Mark Schwarzer.54:33
Wayne Routledge sends in a cross, save by Mark Schwarzer.52:36
The ball is sent over by Nathan Dyer, Chico takes a shot. Save by Mark Schwarzer.52:11
The ball is sent over by Pablo Hernandez, Ashley Williams takes a shot. Save made by Mark Schwarzer.51:33
Angel Rangel takes a shot. Mark Schwarzer makes a save. Inswinging corner taken by Jonathan de Guzman from the left by-line.50:02
Bryan Ruiz fouled by Ashley Williams, the ref awards a free kick. Sascha Riether takes the direct free kick.49:50
Dimitar Berbatov produces a cross.49:35
Centre by Angel Rangel, clearance made by Brede Hangeland.49:10
Centre by Wayne Routledge, clearance by Philippe Senderos.47:57
Direct free kick taken by Damien Duff.47:57 Booking
Booking Pablo Hernandez goes into the referee's book for unsporting behaviour.47:48
Emmanuel Frimpong fouled by Pablo Hernandez, the ref awards a free kick.45:48
Outswinging corner taken by Jonathan de Guzman from the left by-line, Bryan Ruiz makes a clearance.45:01
The second half begins.45:00 +3:14 Half time
Half Time The half-time whistle blows.45:00 +3:03
Nathan Dyer sends in a cross, clearance by Philippe Senderos.45:00 +0:12
Centre by Pablo Hernandez.44:26
Jonathan de Guzman takes a shot. Save made by Mark Schwarzer.43:39
The ball is sent over by Angel Rangel. The ball is delivered by Ben Davies, Brede Hangeland makes a clearance. Outswinging corner taken right-footed by Jonathan de Guzman from the left by-line, clearance made by Brede Hangeland.43:12
The ball is delivered by Angel Rangel, Brede Hangeland makes a clearance.40:39
Nathan Dyer sends in a cross, Brede Hangeland makes a clearance.39:31
Miguel Michu is caught offside. Free kick taken by Philippe Senderos.37:35
The assistant referee signals for offside against Wayne Routledge. Mark Schwarzer takes the free kick.35:33
Unfair challenge on Emmanuel Frimpong by Wayne Routledge results in a free kick. Mark Schwarzer takes the free kick.34:42
Effort from just outside the area by Nathan Dyer goes over the bar.34:18
Outswinging corner taken from the right by-line by Jonathan de Guzman, clearance by Brede Hangeland.34:03
Jonathan de Guzman takes a shot. Blocked by Philippe Senderos.32:59
Unfair challenge on Wayne Routledge by Brede Hangeland results in a free kick. Jonathan de Guzman takes the direct free kick.32:08
Wayne Routledge delivers the ball, Mark Schwarzer makes a save.31:59
The ball is sent over by Wayne Routledge, Damien Duff manages to make a clearance.31:05
Chico gives away a free kick for an unfair challenge on Dimitar Berbatov. Bryan Ruiz restarts play with the free kick. Alex Kacaniklic takes a shot. Save by Michel Vorm.30:42
Damien Duff produces a cross, clearance by Chico.29:29
The referee blows for offside. Free kick taken by Ben Davies.29:05
Angel Rangel challenges Alex Kacaniklic unfairly and gives away a free kick. Free kick taken by Eyong Enoh.26:26
Free kick crossed right-footed by Jonathan de Guzman, Brede Hangeland manages to make a clearance.26:26 Booking
Booking Sascha Riether receives a caution.26:07
Sascha Riether concedes a free kick for a foul on Ben Davies.25:34
Unfair challenge on Miguel Michu by Alex Kacaniklic results in a free kick. Jonathan de Guzman takes the free kick.24:51
Eyong Enoh gives away a free kick for an unfair challenge on Nathan Dyer. Direct free kick taken by Leon Britton.24:38
Free kick awarded for a foul by Dimitar Berbatov on Chico. Chico takes the free kick.23:14
The ball is swung over by Angel Rangel, clearance made by Brede Hangeland.21:21
Emmanuel Frimpong provided the assist for the goal.21:21 Goal scored
Goal! - Alex Kacaniklic - Swansea 0 - 1 Fulham Alex Kacaniklic scores a goal from inside the box to the bottom right corner of the goal. Swansea 0-1 Fulham.20:35
Pablo Hernandez produces a right-footed shot from the edge of the area and misses to the left of the goal.19:48
Foul by Emmanuel Frimpong on Leon Britton, free kick awarded. Jonathan de Guzman restarts play with the free kick.18:38
The ball is sent over by Nathan Dyer, save by Mark Schwarzer.18:03
Brede Hangeland gives away a free kick for an unfair challenge on Pablo Hernandez. Jonathan de Guzman takes the free kick.16:26
Alex Kacaniklic sends in a cross.15:57
The official flags Wayne Routledge offside. Free kick taken by John Arne Riise.11:17
Unfair challenge on Eyong Enoh by Chico results in a free kick. Direct free kick taken by Philippe Senderos.10:58
Wayne Routledge crosses the ball, clearance by John Arne Riise.8:20
Pablo Hernandez takes a shot. Damien Duff gets a block in.8:06
Angel Rangel crosses the ball.6:59
Pablo Hernandez produces a right-footed shot from just outside the box that misses to the right of the goal.4:50
Chico gives away a free kick for an unfair challenge on Alex Kacaniklic. Direct effort from the free kick comes in from John Arne Riise.4:19
Ashley Williams challenges Bryan Ruiz unfairly and gives away a free kick. Free kick taken by Emmanuel Frimpong.3:23
The ball is crossed by Wayne Routledge, Philippe Senderos manages to make a clearance. The referee blows for offside against Miguel Michu. Mark Schwarzer restarts play with the free kick.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers