Leeds were largely outplayed throughout a one-sided first half and fell behind courtesy of a horrendous goalkeeping error from Illan Meslier, who palmed the ball into his own net after Tyrese Campbell’s header hit the post.
However, Leeds were growing into the game and with 18 minutes to go, they did pull level when James’s magnificent cross was met by Firpo, who produced a stunning header to beat Cooper.
Junior Firpo levelled the scores with a wonderful header with 20 minutes remaining before midfielder Ao Tanaka put the visitors in front with a minute remaining after a superb set-piece from Leeds.
Meslier was sent out early for the second half and was the point of ridicule for the home support as he warmed up, but he did produce a fine piece of play to clean up a Brereton Díaz through-ball, gathering just before exiting the penalty area as Campbell looked certain to pounce.
Leeds were struggling to adapt to the pace of the game and had Junior Firpo not produced a brilliant challenge to block Campbell’s cross, O’Hare would have had a simple finish to make it 2-0.