India has beaten Pakistan by 29 runs and will play Sri Lanka in the final of cricket's World Cup.
India made 260 for 9 after winning the toss, then dismissed Pakistan for 231, thanks to a disciplined bowling attack.
Sachin Tendulkar was the top-scorer and man of the match, making 85 at the Punjab Cricket Association Stadium in the tiny Indian town of Mohali.
India's 37-year-old star batsman was dropped four times in his innings, which still left him one short of 100 international centuries.
Fast bowler Wahab Riaz led Pakistan's attack with career-best figures of 5 for 46, while batsman Misbah-ul-Haq top-scored with 56.
Sri Lanka beat New Zealand in the other semifinal on Wednesday.
The final will be played in Mumbai on Saturday.