Sangwan was the highest wicket-taker for Delhi with three scalps as Uttarakhand scored 287/8 before helping Delhi complete the chase with an unbeaten 58 off 49 balls. Delhi ended their run chase on 289/6.
Uttarakhand qualified for the match as the top-placed team in the Plate Group while Delhi had the higher net run-rate compared to their main contenders Baroda.
Delhi were without their opening batsman Shikhar Dhawan, who joined the Indian team for their five-match T20I series against England that starts on March 12. Uttarakhand opener Kamal Singh was their highest scorer with 77 runs while captain Kunal Chandela scored 62.
Sangwan took three wickets but he also had the worst economy (7.38) among his team's bowlers. Rana, meanwhile gave away the least runs, finishing with figures of 2/40 in his 10 overs.
Delhi were pegged back early in the chase as fast bowlers Samad Fallah and Akash Madhwal dismissed their top three within the first nine overs. Uttarakhand continued to pile the pressure on Delhi and the latter were reduced to 84/5 in the 22nd over.
However, Rawat and Rana (81) put up a 62-run stand for the sixth wicket to resurrect the Delhi innings. After Rana's dismissal, Sangwan stayed with Rawat and the pair put up an unbeaten 143-run stand for the seventh wicket, seeing Delhi over the finish line.
The quarter-finals of the tournament will start on Monday with Gujarat facing Andhra and Karnataka playing Kerala. Delhi then face Uttar Pradesh on Tuesday after which Mumbai play Saurashtra later in the day.
Brief scores: Uttarakhand 287/8 in 50 overs (Kamal Singh 77, Kunal Chandela 62; Pradeep Sangwan 3/59, Nitish Rana 2/40) lost to Delhi 289/6 in 48.3 overs (Anuj Rawat 95 not out, Nitish Rana 81; Samad Fallah 2/64) by four wickets with nine balls remaining.