HARARE: A second Test century from Hamilton Masakadza and the late dismissal of dangerous Bangladesh batsman Shahriar Nafeez gave Zimbabwe the upper hand on the second day of their one-off Test at the Harare Sports Club on Friday.Zimbabwe, who had been 264 for two overnight, were all out for 370 in their first innings before Bangladesh replied with a 107-3 at stumps to leave them 263 in arrears at the close of play with seven wickets remaining.Masakadza (104) clawed his way to a second Test century 10 years after his first -- as he put on 142 for the third wicket with skipper Brendan Taylor, who made 71.It was Taylor's fourth Test half century, but once he was out, Zimbabwe lost their remaining seven wickets for just 66 runs.Bangladesh started their fightback by snatching four wickets in the 30 minutes before lunch. After capturing both Masakadza and Taylor with a double breakthrough, seamer Robiul Islam had changed the tone of the game with Craig Ervine (six) and Elton Chigumbura (five) were bundled out in short order as lunchtime approached.After the break Brian Vitori, Kyle Jarvis, Raymond Price and Christopher Mpofu were all quickly disposed of with only former skipper Tatenda Taibu, with 23, offering real resistance. Rubel Hossain and captain Shakib Al Hassan took three wickets each.In reply, Bangladesh lost both openers by the time they had reached 36.Left-armer Brian Vitori marked his Test debut by dismissing Imrul Kayes (four) and and flamboyant Tamim Iqbal (15).Shahriar Nafeez and Mohammad Ashraful (34 not out) then launched a Bangladesh recovery, putting on 66 for the third wicket before Nafeez was bowled by off-spinner Price off his legs for 50 as the shadows lengthened. It was his fifth Test half-century and he hit six fours.