Brentford dealt Leeds' hopes of an automatic return to the Premier League a hammer blow with a thrilling 2-0 win at Griffin Park.
Neal Maupay gave Brentford the lead on the stroke of half time when he curled a stunning 25-yard drive past Leeds keeper Kiko Casilla.
Sergi Canos, a thorn in the visitors' side down the left throughout the first half, slid the Frenchman in with a slide-rule through ball for him to notch his 27th of the season.
And Canos put the game beyond doubt just after the hour mark when he finished off a slick four-man move to dink the ball over the keeper to seal the three points.
The setback means Marcelo Bielsa's Leeds now sit in third, three points behind Sheffield United with just two games remaining.
The half time score was harsh on Leeds, who had the better of the chances before the break and could count themselves unlucky not to win a penalty when Patrick Bamford was tripped in the box by Julian Jeanvier 16 minutes in.
After the break though Brentford took control and dominated for long spells, with Leeds unable to keep the ball and make the crucial chances count as their hosts' confidence grew.
Bamford was the first to show after two minutes when he flashed a first time drive just past the upright as Brentford tried to work themselves into the game.
United's cause wasn't helped when Ezgjan Alioski limped off after 12 minutes to be replaced by former Brentford favourite Stuart Dallas.
Bamford's penalty shout was waved away by ref Keith Stroud and the move ended with another ex-Bee Adam Forshaw forcing a regulation save from Luke Daniels.
The Londoners grew into the game as Leeds' high press was limited in the capital's heat and Canos skipped past three challenges down the left to square for wing back Rico Henry whose first time effort was blocked and looped over the bar.
Canos was lively again minutes later and forced a full length stop from Casilla with a curling drive from the edge of the box, but his next involvement was pivotal as he slid Maupay in for the opener.
Even then Roberts could have sent the visitors in level as he pounced on a Bees slip, but screwed his shot agonisingly past the far post.
After Canos stretched the lead, Maupay saw a volley tipped over by Casilla and Leeds grew increasingly sloppy at the other end, Forshaw and Pablo Hernandez both blazing speculative efforts high and wide.
Leeds, who have failed to win at Brentford since 1950, threw on Jack Clarke for Pontus Jansson and went three at the back – but it simply played into the hands of the Bees' rapid counter attacking football.
Mateusz Klich forced a good save from Daniels on 69 minutes but that was Leeds' final foray of any quality as they had little answer to Brentford's passing.
Canos should have wrapped it up on 70 minutes when he raced into the Leeds half after a superb Romaine Sawyers out ball and beat three United defenders, before being foiled by the outstretched hand of Casilla.
Ollie Watkins might have helped his side add to their tally when he was clipped in the box, but referee Keith Stroud showed a yellow for simulation.
In the end it was a worthy win for the Londoners and leaves Leeds contemplating the play offs, where they have failed in their previous four attempts.
ga('create', 'UA-72310761-1', 'auto', {'name': 'pacontentapi'});
ga('pacontentapi.set', 'referrer', location.origin);
ga('pacontentapi.set', 'dimension1', 'By Press Association Sport Staff');
ga('pacontentapi.set', 'dimension2', '2e1ad293-2baa-4564-aae1-23b44b9786db');
ga('pacontentapi.set', 'dimension3', 'paservice:sport,paservice:sport:club-news,paservice:sport:football,paservice:sport:match-reports');
ga('pacontentapi.set', 'dimension6', 'story');
ga('pacontentapi.set', 'dimension7', 'composite');
ga('pacontentapi.set', 'dimension8', null);
ga('pacontentapi.set', 'dimension9', 'sport:football');
ga('pacontentapi.send', 'pageview', { 'location': location.href, 'page': (location.pathname + location.search + location.hash), 'title': 'Brentford deal major blow to Leeds\u2019 automatic promotion hopes'});