Southampton secured their top-flight future with a 3-3 draw against neighbours Bournemouth as Cardiff's chances of escaping the drop were dealt a potentially-fatal blow with defeat by already-relegated Fulham.
Matt Targett thought he had scored the Cherries' winner - the 1,000th Premier League goal of the season - in the 67th minute but Callum Wilson scored his second of the game four minutes from time to equalise.
Saints had taken a 12th-minute lead through Shane Long only for Dan Gosling and Wilson to turn things around for the visitors just past the half-hour.
However, the point was enough to take Southampton to 38 and out of the reach of Cardiff, for whom relegation is now a very realistic possibility.
Neil Warnock's side trail Brighton, who have a superior goal difference and are playing Newcastle in the late kick-off, by three points after Ryan Babel's 79th minute goal condemned them to defeat with Junior Hoilett hitting the crossbar in added time.
Cardiff's 1-0 defeat also guaranteed Burnley, who face Manchester City tomorrow, are safe on 40 points.
At the other end of the table third-placed Spurs' hopes of solidifying their top-four spot were dealt a blow as West Ham became the first opposition team to win at Tottenham's new stadium.
Spurs had not conceded a goal in their previous four games at their new home but Michail Antonio's second-half strike was enough for a 1-0 win.
Wolves lead the race for seventh, and a likely European spot, after they beat fellow contenders Watford 2-1.
Raul Jimenez's 41st-minute opener was cancelled out by Andre Gray just after half-time only for Diogo Jota to restore Wolves' lead in the 77th minute after a mistake by goalkeeper Ben Foster to take them four points clear in seventh.
Everton missed the chance to maintain the pressure as inconsistency returned to dog them again as, after hammering Manchester United 4-0 last week, they were held to a goalless draw at Crystal Palace.