Dawlat Zadran hit 24 from seven balls to help Afghanistan to a two-wicket win over Zimbabwe in the third ODI, only the second time the war-torn country has beaten a Test-playing nation.

The victory at Queens Sports Club in Bulawayo followed a 32-run victory over Bangladesh in the Asia Cup in March, and leaves the series 2-1 in Zimbabwe's favour with one match remaining.

Zadran hit four sixes as he reached his highest ODI score, helping his side chase down their target of 262 with two wickets and two balls remaining. Opener Javed Ahmadi top-scored with 56.

Afghanistan looked as though they would fall well short of their target until they took 25 from the 46th over bowled by Zimbabwe spinner Sikandar Raza, Zadran securing the win in the final over with a six off Shingi Masakadza.

Earlier, Zimbabwe reached 261 for eight in their 50 overs, with Hamilton Masakadza hitting 84 and skipper Brendan Taylor amassing 53.

The final ODI will be played at the same venue on Thursday.

Zimbabwe 261-8 in 50 overs (H. Masakadza 84, B. Taylor 53; Aftab Alam 2-44) lost to Afghanistan 264-8 in 49.4 overs (Javed Ahmadi 56; S. Williams 2-33) by two wickets.