Naib smashed six sixes and three boundaries in his 68- ball knock as Afghanistan chased down their 249-run target to claim a second successive series win over Zimbabwe after winning in Africa in October.
Naib's final six came off the third last ball after his team had been 121-5 at one stage.
His partnership of 85 with Rashid Khan for the seventh wicket proved key after Zimbabwe had appeared to be on course for a third successive win in the series after losing the first two matches.
Afghanistan were 66-3 in reply after fast bowler Luke Jongwe sent back Mohammad Shahzad, Noor Ali Zadran and Narwoz Mangol.
But Hashmatullah Shahidi and Mohammad Nabi steadied the innings before Naib took charge with his man of the match performance.
"The partnership with Rashid helped and gave me the energy to carry on," Naib told cricinfo.Com.
Afghanistan skipper Asghar Stanikzai hailed his team's win which also cemented their place in the top 10 of the world rankings.
"Afghanistan are known for their ability to bounce back and we showed that today. It's a historic day for us."
Zimbabwe captain Elton Chigumbura blasted his team's below-par performance.
"I thought we lost it in the last nine overs of our bowling, where we didn't bowl our yorkers well. We bowled into Gulbadin's arc. When it comes to execution of our skills, it wasn't up to the standards," said Chigumbura.
"That was the difference between a win and a loss. I wanted to bowl, but was struggling and felt a bit of pain. We have to look forward now and bounce back in the T20 series."
Brief scores: Zimbabwe 248 all out in 49.5 overs (Hamilton Masakadza 110) v Afghanistan 254-8 in 49.4 overs (Gulbadin Naib 82 not out)
Afghanistan won by two wickets
Series: Afghanistan won 3-2.
