In a game of equal exchanges, it was Delhi who managed to convert their chances through Lallianzuala Chhangte (72nd) and Guyon Fernandes (90+8 P) and emerge victorious in the early kick-off.
The Blues, who went down for the second time on the road, were handed another blow late on as defender Subhasish Bose was sent off with a straight red card in the seventh minute of injury time, meaning the left-back will miss the trip to Mumbai.
With 18 points, Bengaluru stay second in the standings, two points behind leaders Chennaiyin FC.
Bengaluru's big chance came in the 18th minute when Dimas Delgado played a defence-splitting pass to pick out Harmanjot Khabra's run through the center. But Khabra's attempt to place his shot past Arnab Das Sarma's left wasn't the best and the keeper ended up saving it.
The Blues had another chance in the 29th minute when a swift counter saw Miku setting up Sunil Chhetri only for the captain's charge in the box to be cut in time by a Pritam Kotal challenge.
In a first half that ended goalless, the hosts too had a fair share of half-chances. Chhangte drew a save from Gurpreet Singh Sandhu in the 35th minute while Kalu Uche and Romeo Fernandes kept Johnson and Rahul Bheke busy.
The first good chance of the second period fell to Braulio on the hour mark. The Spaniard, however, should have done better to put Bengaluru ahead when he set himself up after a pass from Chhetri only to flash wide, before being replaced by Toni Dovale.
End-to-end action followed, and it was the hosts who managed to break the deadlock in the 72nd minute. Kotal contolled Paulinho's through ball inside the box on the right, before sliding it to the wily winger, who made a run into the box and poked it past an onrushing Gurpreet in the Bengaluru goal.
With the Blues trailing, and needing a goal to turn things around, Roca brought in Alwyn George and Paartalu in place of Khabra and Dimas in a bid to go all-out.
Bengaluru were stationed in the rival half for the final 15 minutes, and Johnson almost pulled Roca's men level in the 87th minute with a powerful header from Edu Garcia's free- kick.
His attempt though went straight to Arnab, who managed to hold on to it. Four minutes into injury time, Bengaluru had another great chance to pull level, but Alwyn was denied by the keeper, before Lenny blasted the stray ball over.
As the Blues sent more bodies into the final third, the hosts managed to get another goal late on from a penalty kick after Subhasish received his marching orders for a shove on substitute Guyon Fernandes inside the box.
The Dutch striker stepped up and sent Gurpreet the wrong way to make it 2-0 and seal the win for Delhi Dynamos.
(This story has not been edited by Business Standard staff and is auto-generated from a syndicated feed.)