India did well to reach 267/9 after a shaky start before putting up an impressive effort with the ball to dismiss Sri Lanka for 170 in 42.4 overs.
The batting stars were Anmolpreet Singh (72 off 92) and Sarfaraz Khan (59 off 71), who amassed his fourth fifty plus scores in five innings player in the tournament.
The three time champions now await either West Indies or hosts Bangladesh in the final to played on February 14.
Batting was not easy but Anmolpreet and the in form Sarfaraz steadied the ship with a 96-run stand off 126 balls for the third wicket.
More From This Section
While Anmolpreet's was a gritty 92-ball knock, power- hitter Sarfaraz too played a measured innings considering the circumstances. The 18-year-old IPL recruit, who came into the match with scores of 76, 21*, 74, 74, still managed to pierce the field for six fours and a maximum.
India needed a move on in the last 10 overs and the late burst came courtesy Sundar and Armaan Jaffer, who smashed 29 off 16 balls before Mayank Dagar's 17-run cameo off 10 balls took his team to a competitive total in a crunch match.
Defending the target, the Indian bowlers did not allow the Lankan chase to take off.
India missed quite a few chances on the field but the bowlers were still good enough to keep things tight for the opposition. After a batting cameo, Dagar did his bit with the ball as well, grabbing 3/21 in 5.4 overs of his left-arm spin.
The chase was not a huge one but Sri Lankan batsmen failed to rotate the strike and a regular loss of wickets meant the asking run rate kept going up.
Sri Lanka's hopes of reaching their second ever final were all but over when the scoreboard read 133 for six in the 35th over.