Opening batsman Khurram Manzoor smashed 168 off 116 balls to chase their target of 296 to help Punjab beat Sindh by six wickets and 11.4 overs to spare.
The result, however, will not have any impact on the final as Balochistan and Khyber Pakhtunkhwa (KPK) had already sealed the spots.
After choosing to bat first, Sindh posted a below-par total of 295 for nine at the Rawalpindi Cricket Stadium. Sindh mainly rode on Umar Amin (83 off 85) and Asif Ali (62 off 45) fifties to reach the total after their top order failed to kick on despite getting starts. Hammad Azam's effort of 42 off 31 also helped the cause towards the end.
Sohail Tanvir (3-17) and Fahad Iqbal (3-44) were the pick of the bowlers for Punjab.
In reply, Manzoor added 55 runs for the opening wicket with Kamran Akmal (26 off 23) before a 139-run second-wicket stand with Sami Aslam (54 off 50) on course to his 23rd List-A hundred. Another 82-run stand between Manzoor and Iftikhar Ahmed (33 off 28) brought Punjab almost home before both of them fell in consecutive overs. Saad Ali (8 off 9) and Fahad Iqbal (5 off 4) finished the game for Punjab.
Mohammad Ilyas was the pick of the bowlers for Sindh with 2-64 while Aamer Yamin and Nauman Ali shared a wicket each.
Punjab finished the tournament on the third spot with two wins in four games while Sindh, who could only win one game, finished fourth.
The final of Pakistan Cup will be played between Balochistan and KPK on Friday.