West Indian captain Brian Lara's decision to bat in the final qualifying match backfired as Vaas claimed two wickets in his first two overs before Maharoof continued the sensational collapse on Saturday.
The 22-year-old Maharoof took advantage of the slow wicket at the Brabourne stadium to surpass his previous best of 4-20 against India in Ahmedabad last year.
His figures were also the best ever in the five editions of the biennial Champions Trophy so far, surpassing Pakistani Shahid Afridi's 5-11 against England in Edgbaston in 2004.
Four of the top eight batsmen failed to score as the West Indians were shot out for their poorest total against Sri Lanka, well below their previous low of 145 in Sharjah in 1999.
Both teams have already qualified for the main tournament starting on Sunday at the expense of Bangladesh and Zimbabwe.
The winner will join South Africa, Pakistan and New Zealand in group B. The loser faces world champions Australia, England and hosts India in group A.
Two teams from each group will advance to the semi-finals.
The West Indies never recovered after losing the in-form Chris Gayle off the fourth ball of the match, caught behind by a diving wicket-keeper Kumar Sangakkara off Vaas.
Gayle, who hit an unbeaten century in the previous match against Bangladesh, failed to get off the mark.
New man Ramnaresh Sarwan survived a confident leg-before appeal first ball, but fell in similar fashion in Vaas' second over without scoring.
Shivnarine Chanderpaul hit Lasith Malinga for two consecutive boundaries before the bowler took revenge by forcing an edge to Sangakkara.
Lara and Wavell Hinds took the score from 13-3 to 51 when Maharoof hit back with two wickets in the space of four deliveries.
Lara, who made 13 off 35 balls with two boundaries, failed to build on the sound start when he was trapped leg-before by Maharoof with a delivery that kept low.
Dwayne Bravo was also leg-before to Maharoof for no score to leave the West Indies tottering at 55-5.
The West Indian total was boosted by the 17 extras Sri Lanka conceded, including 10 no-balls and two wides.