Sehwag was unbeaten on 91 at the lunch-break before hammering a robust 128 not out for his 15th Test hundred on a rain-hit opening day. He dominated a 167-run stand for the opening wicket with Gautam Gambhir (56).
But unorthodox spinner Mendis and veteran left-arm seamer Vaas did not allow India to capitalise on a strong start, sharing four quick wickets to reduce the tourists to 214-4 in the first innings at stumps.
Only four batsmen -- Australians Victor Trumper, Charles Macartney and Don Bradman, and Pakistan's Majid Khan -- have scored a hundred before lunch on the opening day of a Test.
It was the second time that Sehwag had missed out on the rare distinction, having smashed an unbeaten 99 before lunch against the West Indies in St Lucia two years ago.
India were comfortably placed at 151 for no loss at lunch, but their batting woes began when play resumed in the last session after more than three hours were lost due to rain as four wickets fell in the space of 11 runs.
Mendis trapped Gambhir leg-before and had Rahul Dravid (two) caught by Malinda Warnapura, while Vaas accounted for ace batsman Sachin Tendulkar (five) and former captain Sourav Ganguly to put the hosts back into the match.
Sehwag did not let the long rain-break affect his concentration, hoisting Mendis over long-on for a six and then driving the bowler for a four to complete his century off just 87 balls.
India, who had collapsed twice against spin in the opening Test in Colombo, called the shots in the morning as Sehwag and Gambhir averaged more than five runs an over.
Sehwag was more aggressive, putting the Sri Lankan attack to the sword with rich strokeplay on an easy-paced track after his team elected to bat. He has so far struck two sixes and 19 fours in his 122-ball knock.
Gambhir was lucky to survive on 13 when he edged seamer Nuwan Kulasekara to first slip, but Kumar Sangakkara, apparently distracted by wicket-keeper Prasanna Jayawardene diving in front of him, failed to hold on to the ball.
The lapse proved costly as Gambhir continued to provide valuable support to Sehwag. He struck eight fours in his solid knock.
Sehwag offered a difficult chance on 90 off spinner Muttiah Muralitharan, the edge going between the wicket-keeper and slip fielder Mahela Jayawardene for a four.
Gambhir was initially adjudged leg-before by on-field umpire Billy Doctrove of the West Indies, but asked the official to review his decision. Doctrove was proved right after consulting TV umpire Mark Benson of England.
A new experimental rule allowing players to seek a second opinion on umpiring decisions is on trial in the ongoing series.
Each team is allowed three unsuccessful review requests per innings but if one is successful they will get an additional appeal.
Sri Lanka lead 1-0 in the three-match series following their victory by an innings and 239 runs in Colombo.