Swansea City head to Griffin Park with the advantage in their play-off semi-final against Brentford, thanks to Andre Ayew’s late winner at the Liberty Stadium.
With the Swans having been involved in a night of huge drama at Reading in midweek, there was no shortage of incident to be found in this first leg either.
Ayew was denied from the penalty spot in the second half after Pontus Jansson had fouled Rhian Brewster.
Moments later Brentford had Rico Henry sent off, and Steve Cooper’s side made the most of the opportunity when Ayew dispatched his 18th goal of the season high into the net with his left foot.
It settled an entertaining and intriguing contest on the night, with all eyes now turning to Wednesday’s crucial second leg in West London.
But Swansea will make the journey in high spirits as they got the better of a Bees team who had won the two meetings between the sides during the regular season.
The Swans were unchanged from the midweek win over Reading, with Mike van der Hoorn fit to start, while Brentford made one alteration as Mathias Jensen came in for Emiliano Marcondes.
The visitors started sharply, Said Benrahma heading wide from a Jensen cross after crisp build-up.
Erwin Mulder then made an excellent diving stop to tip away a clever flick-on header from Ollie Watkins.
The Swans began to settle, a lovely delivery from Conor Gallagher troubling David Raya in the Bees goal.
They threatened again when Brewster got on to Gallagher’s deft pass, but Raya was equal to the striker’s powerful shot from just inside the area.
However, Watkins should have had the visitors ahead in the 25th minute, but wastefully headed over after a strong surge down the left by Henry.
Christian Norgaard struck a firm drive into the arms of Mulder just after the half-hour in what was proving to be an engrossing tactical battle.
Jake Bidwell got down the flank and floated in a lovely cross for Brewster, with the striker’s header deflecting wide off Henry.
And the Swans thought they had taken the lead on 39 minutes from the resulting corner.
Ayew’s header came back off the post, and Brewster looked certain to open the scoring, only to nod the ball straight at Raya’s feet with the keeper scrambling.
Benrahma then produced a wonderful slaloming run through the Swans defence, but could not keep his composure as he blazed well over.
It was goalless at the break, with Ayew forcing Raya into another save with a glancing header from a Gallagher free-kick early in the second half.
Brentford responded, Jensen dragging wide after being slid in by Benrahma, before Watkins failed to hit the target from Henry’s superb cross.
Jay Fulton shot straight at Raya from the edge of the box after the Swans had pressed well and won the ball high up the field, and Ayew then curled wide after cutting in from the right-hand flank, before a similar run led to a Swansea penalty.
The Ghanaian’s lay-off to Brewster tempted Jansson into an off-balance challenge that saw referee Keith Stroud point to the spot.
Ayew had been faultless from the spot during the 2019-20 campaign, but he was denied by Raya’s trailing right hand to keep the scores level.
The drama kept coming, with Henry seeing red for a rash challenge on Roberts near the right-hand touchline.
It took the second-half drinks break to restore a sense of calm to proceedings, and Swansea look to press on with the man advantage.
Gallagher swiveled in the box but slipped as he looked to close in on Raya, while Brewster was booked for diving as he and the keeper went after the loose ball.
Grimes fizzed an effort over the bar from the edge of the box as the final 10 minutes arrived before Ayew made amends for the missed penalty by firing the Swans ahead.
Gallagher and Fulton produced lovely link play to tee up the forward, who smashed an unstoppable rising volley into the top corner and ensure Swansea hold the lead heading into the second leg.
Swansea City: Erwin Mulder; Ben Cabango, Mike van der Hoorn, Marc Guehi; Connor Roberts, Jay Fulton, Matt Grimes (captain), Jake Bidwell; Conor Gallagher, Andre Ayew; Rhian Brewster.
Unused Substitutes: Josh Gould, Tivonge Rushesha, Yan Dhanda, Bersant Celina, Aldo Kalulu, Nathan Dyer, Jordon Garrick, Liam Cullen, Cameron Evans.
Brentford: David Raya, Rico Henry, Ethan Pinnock, Christian Norgaard, Mathias Jensen (Shandon Baptiste 84), Said Benrahma (Joel Valencia 84), Ollie Watkins, Josh Dasilva (Mads Roerslev 70), Pontus Jansson (captain), Bryan Mbuemo (Emiliano Marcondes 70), Henrik Dalsgaard.
Unused Substitutes: Luke Daniels, Sergi Canos, Halil Dervisoglu, Julian Jeanvier, Tariqe Fosu.
Referee: Keith Stroud