The Mumbai right-hander, back in the side after an injury lay-off, got to the coveted double off 151 balls in grand style, hitting 26 fours and five sixes, in the 46th over.
Dropped on 4, he was out to the last ball of the innings for 264, which came off 173 deliveries and was studded with 33 fours and nine sixes, as India finished with 405 for 5.
He eclipsed Virender Sehwag's record of 219, against the West Indies in Indore in 2011.
Robin Uthappa was not out on 16.
- Scorecard
He is the only batsman to hit two double centuries in the history of ODIs.
Sehwag and Sachin Tendulkar (200 not out) are the other two who have scaled the 200-run mark in One-dayers.
Exactly a year back, Rohit had smashed 209 against Australia in Bangalore in November 2013.
Image: Rohit Sharma celebrates after completing a double hundred against Sri Lanka in the fourth ODI.
Photograph: BCCI
Rohit first batsman to hit two double centuries in ODIs
Gambhir, Sehwag finally find form as Delhi down Haryana
ISL: Subrata Paul shines in a goalless draw
KL Rahul, Karn Sharma in 19-man Test squad for Australia
Classic Revisited: Aamir Khan's coming-of-age in Jo Jeeta Wohi Sikandar