LONDON – Cardiff had only themselves to blame for a lacklustre display against already relegated Fulham at Craven Cottage.
Former Liverpool forward Ryan Babel netted Fulham's winner when he took Cyrus Christie's pass and produced a superb finish from 25 yards in the 79th minute.
Neil Warnock's men almost snatched a draw in stoppage-time when Junior Hoilett side-footed against the bar.
Southampton sealed their survival in a dramatic 3-3 draw against south-coast rivals Bournemouth at St Mary's.
Shane Long scored the fastest goal in Premier League history after 7.69 seconds against Watford in midweek and the Irish forward struck again, this time after 12 minutes, to put Southampton ahead with a low shot.
Dan Gosling equalised for Bournemouth eight minutes later from Callum Wilson's pass and the visitors were in front in the 32nd minute.
David Brooks crossed for Wilson to fire home after Southampton goalkeeper Angus Gunn could only push it into his path.
James Ward-Prowse bagged Southampton's equaliser from 20 yards in the 55th minute and Matt Targett made it three in the 67th minute, his effort ranking as the 1000th scored in the Premier League this season.
Wilson salvaged a point for Bournemouth with his 86th minute equaliser, but Southampton, seven points above the bottom three, are assured of staying up.
Wolves gained a measure of revenge for their FA Cup semi-final defeat against Watford as they beat the Hornets 2-1 at Vicarage Road.
Mexico striker Raul Jimenez gave Wolves the lead in the 41st minute with a header from Diogo Jota's cross.
Andre Gray drew Watford level four minutes after half-time, but Jota won it for Wolves in the 77th minute as Nuno Espirito Santo's side consolidated seventh place.
Crystal Palace played out a dour goalless draw with Everton at Selhurst Park.