Sri Lanka fast bowler Suranga Lakmal led an inspired pace attack to an emphatic seven-wicket win over India in the first one-day international in Dharamsala on Sunday.

Lakmal returned career-best ODI figures of 4-13 to help dismiss India for just 112, with Sri Lanka achieving the target in 20.4 overs and taking a 1-0 lead in the three-match series.

The visitors lost two early wickets in their chase before opening batsman Upul Tharanga made a 46-ball 49 to help his team end a 12-match losing streak.

Tharanga, who lost his ODI captaincy to Thisara Perera ahead of the series, was denied his fifty by Hardik Pandya who had the left-handed batsman caught at first slip.

Angelo Mathews, 25 not out, and Niroshan Dickwella, on 26, then steered their team home for a win savoured by the visitors after losing the three-Test series 1-0 last week.

Pace spearhead Lakmal set up victory for the islanders after Perera won the toss and elected to bowl first at the picturesque ground overlooking the Himalayas.

The lanky paceman rattled the Indian batting during his extended spell of 10 overs as India collapsed to 29-7 before Mahendra Singh Dhoni fought back with a gritty 65 to take the total past 100.

With India in danger of being bowled out for an historic low -- Zimbabwe's 35 in 2004 versus Sri Lanka is the all-time record -- Dhoni put on a crucial 41-run partnership with Kuldeep Yadav for the eighth wicket.

The pair took India past 54, their own lowest total, which was set against Sri Lanka in 2000.

Dhoni hit 10 fours and two sixes in his 87-ball stay, getting his 67th ODI half-century before he was finally dismissed by Perera to wrap up the Indian innings.

It was a horror start for skipper Rohit Sharma, named captain in place of the absent Virat Kohli who is officially resting ahead of the South Africa tour.

Mathews -- who returned to bowl after recovering from a calf injury -- drew first blood, trapping Indian opener Shikhar Dhawan for nought in the second over of the innings.

Lakmal soon got Sharma caught behind for two as the Indian top-order found it hard to counter the bounce and swing at the Himachal Pradesh Cricket Association Stadium.

The action now moves to the second ODI in Mohali on Wednesday.