Sabbir made an unbeaten 43 and then took 3-11 to help Bangladesh restrict Zimbabwe to 125-8 at Khulna after the home side posted a commanding 167-3.
Aiming to bounce back from Friday’s four-wicket loss in the opening match, Zimbabwe began positively with a 50-run partnership between stand-in captain Hamilton Masakadza and Vusi Sibanda.
Bangladesh skipper Mashrafe Mortaza, the third change bowler, broke the stand when he bowled Sibanda for 21.
Masakadza was dropped twice, both on 24 in the same over off Mortaza, but Sabbir ensured the mistakes were not costly by removing the batsman for 30.
Zimbabwe collapsed after Al-Amin Hossain dismissed Malcolm Waller, the only other batsman to offer some resistance with 29 off 21 balls.
Earlier, Soumya Sarkar also made 43 as Bangladesh dominated from the start after Mortaza had won the toss and elected to bat first.
Shakib Al Hasan was unbeaten on 27 alongside Sabbir, who faced 30 balls and hit three sixes at the packed Sheikh Abu Naser Stadium.
Tamim Iqbal (23) and Soumya put on 45 for the first wicket before Taurai Muzarabani made the breakthrough for Zimbabwe.
Tamim went for a slog sweep and was caught at fine leg after facing just 17 balls.
Soumya, who faced 33 balls and hit four fours and three sixes, wasted a chance of getting his maiden fifty when he offered a catch to Malcolm Waller at long on off Graeme Cremer.
Mahmudullah followed with just one run but Mushfiqur Rahim revived the innings with 24 off 20 balls before retiring with a hamstring injury.
Mortaza hailed the openers for giving his team a good start.
“It is very important for the openers to go good, and Sabbir Rahman is scoring for the team at number three,” he told reporters.
“Unlucky that Mushfiq got injured, but Shakib finished it well.”
Masakadza, who led Zimbabwe after the visitors rested their regular captain Elton Chigumbura, was disappointed with his team’s batting.
“I guess the bowlers did quite well to restrict Bangladesh,” he said. “I think 167 was chaseable, but we didn’t do enough in the powerplay and then overs six-10 were (disappointing) as well.”
Zimbabwe made three changes from the opening match as Neville Madziva, Muzarabani and Richmond Mutumbami came in for Chigumbura, Sikandar Raza and Luke Jongwe.
Bangladesh have made three changes to the squad for the next two matches, which will be held at the same venue on January 20 and 22.
The hosts picked uncapped batsman Mosaddek Hossain and all-rounder Mukter Ali along with paceman Mohammad Shahid, who played five Tests but has yet to make his debut in limited-over internationals.
Paceman Mustafizur Rahman and Al-Amin Hossain have been rested while Shuvagata Hom was dropped from the squad.