Sunrisers Hyderabad kept their Indian Premier League play-off hopes alive with a dramatic three-run win over Mumbai Indians.

Rahul Tripathi's 76 helped Sunrisers post an imposing total of 193-6 at the Wankhede Stadium.

Despite an opening partnership of 95 between Mumbai captain Rohit Sharma (48) and Ishan Kishan (43), Sunrisers appeared to be coasting to victory when Rohit's side were reduced to 144-5 in the 17th over.

But the subsequent over brought chaos as Tim David clobbered Thangarasu Natarajan (0-60) for four sixes, including three in succession.

The final ball of the over, however, saw David run out for 46 as he chased an ill-advised single.

Mumbai could not recover the initiative from there, Bhuvneshwar Kumar's excellent wicket-maiden 19th over leaving them with too much to do in the final six balls.

With one game to play, Sunrisers are among three teams two points behind fourth-placed Delhi Capitals but will need help to reach the play-offs given their negative net run rate.

Game turns on 18th over chaos

David appeared set to end Sunrisers' hopes as he punished Natarajan for a series of dismal full tosses, his fourth six of the 18th over a 114-metre blast that marked the second-longest of the tournament.

But his decision to chase the strike for the start of the 19th with a single that never looked on effectively ensured victory for Hyderabad.

Sunrisers streak stopped

A win that was too close for comfort ended a run of five straight defeats for Sunrisers, though that streak will likely still keep them out of the play-offs.