Harare - India were shut out of the Wednesday's Tri-nations final in Harare on Saturday when Dinesh Chandimal led Sri Lanka to victory with just 10 balls to spare.
India needed a win to stay in the tournament, which would have given them a slender chance to play in the final on Wednesday.
That would have depended on Zimbabwe then beating Sri Lanka in the last round robin match on Monday. This game will now have no significance for the tournament, but will be a guide to form.
India's score of 268/9 was not quite enough. Sri Lanka hit 270 with 10 balls to spare and six wickets in hand.
India now have six days to wait to play two Twenty20 matches against Zimbabwe next weekend, which have been added on to the Tri-nations tournament. With this latest defeat they have dropped to third place behind Australia and South Africa in the ICC ODI rankings.
Chandimal, named man of the match, punished the Indian bowlers with 111 in 118 balls. It was his maiden century in internationals and he said afterwards: "I just played my normal game, which is an aggressive one."
He was partnered for the third wicket of 114 by Chamara Kapudegera in a supporting but important role, scoring 42.
Every one of Sri Lanka's batsmen contributed more than 21.
Tillekeratne Dilshan, the Sri Lanka captain, said he was pleased and relieved not to leave it late getting to the final. "Our plan was to keep the pressure on India all the way. Our fielding was excellent and that was a key to our success."
India skipper Suresh Raina thought losing the toss was important to the result.
"The wicket just got better and better for batting during the day," he said.
"We now have a week off and we'll use that to improve all aspects of our game. There is much work to do."
India brought in three young players into the side - Nuwan Ojha, R. Ashwin and Pankaj Singh. Their innings got off to a bad start when Ojha was out for one.
It fell to Dinesh Karthik (68) and Yusuf Pathan (44) in an 84 partnership for the third wicket to set up India for a potentially good score and in a bid for a 280 runs target, which they nearly reached.
It was Karthik's eighth half century and it got him to his first 1 000 runs in ODI cricket, the fastest Indian to do so.
One very unusual incident was a no-ball bowled Thusara Mirando, which resulted in a run-out of Ravendra Jadeja.
India's young replacement team for eight senior players not sent here were a disappointment and there will be a lot of debate in India about the value or otherwise of taking this decision.