Virat Kohli celebrates after scoring fifty against Gujarat Titans in Mumbai on Satruday. Twitter photo
Kohli made 58 off 53 balls and led Bangalore to 170-6 but Gujarat’s strong middle order continued to prosper and reached 174-4 with three balls to spare.
Rahul Tewatia's power-hitting exploits earned him an unbeaten on 43 off 25 balls, David Miller was unbeaten on 39, and the two left-handers combined in a match-winning 79-run stand.
Gujarat improved to a two-win lead on the league with a fifth straight win. It has lost just one of its nine games. Bangalore slipped to fifth after a third straight loss.
Kohli finally got amongst the runs after coming into the game with scores of 9, 0 and 0 in his last three matches.
Kohli, who stepped down from Bangalore captaincy at the start of the season, shared a 99-run partnership for the second wicket with Rajat Patidar, 52 runs, after fast bowler Pradeep Sangwan found the outside edge of skipper Faf du Plessis in the second over.
But both batters survived tough chances before completing their half-centuries.
Sangwan returned and broke the stand when Patidar top-edged the left-arm fast bowler to square leg, and Kohli was clean bowled by Muhammed Shami off a yorker in the 17th over.
Glenn Maxwell added two sixes and three fours in his quickfire 33 off 18 balls.
Spinners Shahbaz Ahmed and Wanindu Hasaranga brought Bangalore back in the game by claiming four wickets in the middle overs to pull back Gujarat to 95-4 in the 13th over.
But Tewatia and Miller controlled the chase in the death overs before Tewatia raised the victory with a boundary against Josh Hazlewood in the final over.
"Everybody likes it. See what it means to India, see what it means to IPL," former England batter Kevin Pietersen said on commentary. "It means hell of a lot to Virat who has been down in the dumps. He has practised hard and tried to keep things simple."