Harare: A dominant India predictably completed a 3-0 whitewash by bulldozing a sub-par Zimbabwe by 10 wickets in the final ODI cricket match here today in what turned out to be one of the most one-sided series in recent times.

Mahendra Singh Dhoni's boys outclassed the hosts in all departments by first bowling them out for their lowest total of 123 in the series with Jasprit Bumrah grabbing 4/22 and then romping home in 21.5 overs.

Openers KL Rahul (63 not out) and debutant Faiz Fazal (55 not out) flayed with what seemed like a club-level bowling attack to guide India home.

India also completed a hat-trick of whitewashes against the hosts, having won earlier ODI series by 5-0 and 3-0 margin in 2013 and 2015 when Virat Kohli and Ajinkya Rahane led the sides respectively.

For Dhoni, there were two milestones that he achieved from the series. With 107 wins as captain, he equalled Allan Border for the second highest number of wins in ODI history behind Ricky Ponting (165).

Also he became the first Indian wicketkeeper-batsman to complete 350 dismissals in 50-overs cricket.

However, there wasn't much else to draw from the three matches as it was one rare series where only four batsmen -- namely openers Rahul, Karun Nair, Fazal (this match) and Ambati Rayudu -- got a decent hit in the middle.

The entire middle-order -- skipper himself, Kedar Jadhav, and Manish Pandey (two balls) -- did not get a chance to bat thanks to the impressive effort by the bowlers led by Jasprit Bumrah with 9 wickets from 3 games.

The nature of the contest has been of very poor quality as there was only one team which had its foot on the pedal.

While chasing, Rahul enjoyed the pedestrian bowling attack helping himself to a half-century, his second 50-plus score after a hundred on debut while old domestic warhorse Faiz Fazal celebrated his maiden India cap with a polished knock.

With only 124 to get, the Indian openers did not need to take any risks yet scored runs at a quick clip to finish off the formalities with minimum fuss.

Left-handed Fazal looked elegant as he hit a few gorgeous shots through the cover as well as back past the bowler. Fazal lifted skipper and leg-spinner Graeme Cremer for a straight six.

While Fazal's innings had seven fours and a six in 61 balls, Rahul was more partial towards the cut shot and he also hit some cover drives.

When Cremer tried to flight the ball, the Mangalore-lad was quick to pounce on it hitting him into the sightscreen for a six. He hit another six off Chamu Chibhabha over long-on. In all he hit four boundaries and two sixes in 70 balls.

The century stand came in 113 balls while Fazal finished the match with a pulled boundary.

Rahul finished the series with 196 runs from three innings that had a century and a half-century.

Earlier, Indian bowlers, led by Bumrah, engineered yet another batting collapse of Zimbabwe to dismiss them for a lowly 123 in 42.2 overs.

It was a huge embarrassment for Zimbabwe who lost five wickets in a space of 11 deliveries with an addition of four runs in a match that turned out to be an action replay of the two earlier lopsided contests.

Worse, four batsmen were dismissed in four consecutive deliveries, which also included a run-out.

From 104 for 3 in 32.4 overs, Zimbabwe slumped to 108 for 8 in 34.3 overs as none of the home players showed any resilience in-front a disciplined Indian bowling attack.

In fact, Zimbabwe lost 8 wickets for 34 runs after being in a relatively safe position of 89 for 2 in the 29th over.

Bumrah was fast and also got vicious inward movement to end with figures of 4/22 in 10 overs while spinners Yuzvendra Chahal (2/25 in 8 overs) and Axar Patel (1/16 in 10 overs), also maintained their consistent run in the series.

Skipper Mahendra Singh Dhoni also reached a 'mini milestone' in his ODI career when he took his 350th victim (catch and stumping) -- a smart catch off Bumrah to dismiss Elton Chigumbura (0).

Dhoni now stands fourth in the overall list behind Kumar Sangakkara (482 victims), Adam Gilchrist (472) and mark Boucher (424 victims).

Zimbabwe once again made a tentative start against the new-ball pair of Kulkarni and Sran, both of whom got appreciable movement off the pitch.

Seasoned Hamilton Masakadza (8) saw Kulkarni bowling to the channel outside off-stump as the Mumbai seamer got the ball to move away from the right-hander after pitching.

After playing and missing a few, Masakadza tried an audacious drive without getting to the pitch of the delivery and KL Rahul took a regulation catch.

Chamu Chibhabha (27) and Vusimuzi Sibanda (38) negotiated the new ball safely but could never force the pace of the innings.

It was Chahal, who dealt a double blow, not afraid to flight his deliveries.

A tossed up delivery saw Chibhabha take the aerial route only to be caught at long-off boundary by Bumrah.

Chahal also got top-scorer Sibanda, who had faced 71 deliveries, by tossing one up. The batsman was beaten in the flight and the bowler got a return catch.

Post Sibanda's dismissal, it was the same script of losing wickets in a heap.

Brief Scores

Zimbabwe: 123 all out in 42.2 overs (Vusi Sibanda 38, Chamu Chibhabha 27, Jasprit Bumrah 4/22).

India: 126/0 in 21.5 overs (K L Rahul 63 not out, Faiz Fazal 55 not out).

India beat Zimbabwe by 10 wickets, win series 3-0.