This is Punjab's third win in five games which keeps them in hunt for quarter-finals from this group.
Batting first, Haryana could score only 194 as Harbhajan's three wicket burst left them reeling at 127 for 5 from a relatively comfortable 75 for 1.
Punjab got the runs in 41.4 overs with Gurkeerat Singh Mann again anchoring the chase with an unbeaten 91 off 86 balls studded with 14 boundaries.
Chaitanya Bishnoi (38) got an off break while Shivam Chauhan (1) was done in by a straighter one. Rahul Dagar failed to read Harbhajan's straighter one.
More From This Section
His final wicket was former India teammate Joginder Sharma (0) caught plumb in front without troubling the scorers.
Harbhajan's final figures read 10-1-33-4.
Punjab were also in trouble at one stage with 75 for four as Yuvraj Singh (8) was cleaned up by Harshal Patel as he was beaten for pace.
But Gurkeerat kept his cool during the chase and it was a comfortable win in the end.
Brief Scores:
Haryana: 191 all out (Nitin Saini 48, Rahul Tewatia 34; Harbhajan Singh 4/33).
Punjab: 200/5 in 41.4 (Gurkeerat Singh Mann 91 not out).
Summarised scores of other Group A matches:
1) Assam beat Railways by 4 wickets
Railways: 215 all out in 48.3 overs (Aakash Verma 55; Arup Das 3/36)
Assam: 216 for 6 in 48.0 overs (Pallavkumar Das 45, KB Arun Karthik 42; Ashish Yadav 3/26).
Odisha: 162 all out in 45.3 overs (Govinda Poddar 59; Akshay Karnewar 4/21)
Vidarbha: 163 for 3 in 40.1 overs (Jitesh Sharma 70; RP Patel 2/32).