Rohit equalled South African David Miller's record en route his coruscating knock of 118 that propelled India to a colossal 260 for five after being invited to bat.
The knock was Rohit's second T20 hundred and the best by an Indian in this format. It was not power-hitting but sheer elegance coupled with remarkable ease.
There was never a dull moment till the time Rohit was at the crease as he pulled, cut and drove the clueless Lankan bowlers at will.
In the process he raised a 165-run stand for the first wicket, the highest for India, with Lokesh Rahul, who scored 89 off 49 balls.
Rohit, always revered as a special talent, is gradually creating his own legacy as he is the only batsman to have scored three double centuries in One-day cricket and now has two T20 hundreds to his name.
The hosts shot the Lankans for 172 to take an unassailable 2-0 lead in the series, rendering the third T20 in Mumbai on Sunday, inconsequential.
Kusal Perera top-scored for Sri Lanka with his 37-ball 77-run knock but the visitors were out of the game after Rohit's blitzkrieg. They maintained a decent run-rate but it was not going to be enough.
From being 145 for one in 13.1 overs, they collapsed to 172 in 17.2 overs.
Once the 109-run second-wicket partnership between Upal Tharanga (47 off 29) was broken by leg-spinner Yuzvendra Chahal (4/52), the Lankans innings fell apart.
None of the Sri Lankan batsman, barring the top-three, could manage a double-digit score.
In an incredible display of hitting, the Indian captain smashed 12 fours and 10 sixes during his 43-ball stay at the crease.
Before being caught at short third man off Dushmantha Chameera, Rohit left the Lankans shell-shocked but delighted the home fans at the jam-packed Holkar stadium, hosting its first ever T20 International.
He seemed to have taken a special liking to the Lankans, against whom he raised his third ODI double century just eight days back in Mohali during the second One-dayer.
Rahul, who was dropped on six, was also impressive with his stroke-making, specially the sixes in the V. He missed out on his hundred, though, after being caught sensationally by stumper Niroshan Dickwella off Nuwan Pradeep in the 19th over.
His knock had five fours and eight sixes.
The Indian openers literally toyed with the Sri Lankan pacers, who ended up leaking 43 runs in the first five overs. Pradeep, introduced in the fifth over as first bowling change, was creamed for 17 runs. Both Rohit and Rahul hit a six each off him.
There was neither probing length nor the fearsome pace in the Lankan fast bowlers to trouble the Indians. The only blemish was Rahul's cut off Angelo Mathews that went straight to Sadeera Samarwickrama, but the Lankan dropped the chance at backward point in the third over of the innings.
Desperate to rein in the Indians, Perera brought in off- spinner Akila Dananjaya, but he ended up conceding 16 runs in his first over.
Left-arm spinner Chaturanga de Silva was smashed for a 101-metre six by Rahul, who stepped out and launched the ball straight over the media box. This was after Rohit had hit two fours off the hapless spinner.
It was not even half-way mark and India had cruised to 108 for nine with 21 runs coming off the ninth over from Gunaratne.
There was no stopping Rohit, who cruised to his hundred in the 12th over with a four off Angelo Mathews. This was after hitting his counterpart for four consecutive sixes in the previous over.
Dhoni scored 27 off 21 balls with two fours and as many sixes.
India fell short of the highest T20 total by just four runs, as Australia's 263 for three against Sri Lanka remained at the top.