Nafees was out for 50 and Bangladesh was 107 for three at stumps, 263 runs behind Zimbabwe’s first innings total of 370.
Earlier, Hamilton Masak-adza hit his first Test century in 10 years to lead Zimbabwe’s batting at Harare Sports Club.
He combined for a 142-run partnership with captain Brendan Taylor (71), but Masakadza’s dismissal for 104 began a slump as the host lost eight wickets for 66 runs after threatening to post a big total.
Debutant fast bowler Brian Vitori took two wickets at the start of Bangladesh’s reply. Nafees and Mohammad Ashraful (34 n.o.) replied with a 66-run stand.
Masakadza resumed after ending day one on 88 not out, and toiled for his runs before completing his century in 235 balls.
His hundred included eight fours and one six and was his first ton since his debut against the West Indies on the same ground 10 years ago.
SCORE BOARD
ZIMBABWE (I Innings, O/n: 264/2):
Mawoyo c M’dullah b R Hossain 43
Sibanda c Rahim b R Hossain 78
Masakadza c Kayes b R Islam 104
Taylor c Rahim b R Islam 71
Ervine lbw M’dullah 6
Taibu c Nafees b Shakib 23
Chigumbura c S Islam b Shakib 5
Price lbw R Hossain 4
Jarvis (not out) 4
Vitori c S Islam b Shakib 12
Mpofu st Rahim b Razzak 2
Extras (B-4, LB-11, W-1, NB-2) 18
Total (all out, 116 overs) 370
Fall of wickets: 1-102, 2-162, 3-304, 4-317, 5-317, 6-326, 67-344, 8-352, 9-368.
Bowling: S Islam 22-8-38-0; R Islam 30-4-106-2; R Hossain 29-3-84-3; Shakib 26-5-62-3; Razzak 22-2-57-1, Mahmudullah 2-0-8-1.
BANGLADESH (I Innings):
Iqbal c Taylor b Vitori 15
Kayes c Price b Vitori 4
Nafees b Price 50
Ashraful (batting) 34
Mahmudullah (batting) 4
Total (for 3 wkts, 46 overs) 107
Fall of wickets: 1-13, 2-36, 3-102.
Bowling: Brian Vitori 11-3-29-2, Kyle Jarvis 8-1-29-0, Chris Mpofu 10-5-20-0, Elton Chigumbura 10-3-20-0, Ray Price 7-4-9-1.