Virender Sehwag set them on their way with a blazing 52 off 38 balls and Ganguly then added 80 with Mahela Jayawardene (45).
The left-hander was dropped twice but eventually caught in the deep.
Mohammad Asif struck in the third over and skipper Justin Kemp departed for a second ball duck. Mark Boucher's breezy 73 with two sixes was not quite enough.
The Asian XI showed two changes to the team which played in Bangalore with spinner Mohammad Rafique and paceman Dilhara Fernando replacing Harbhajan Singh and Mashrafe Mortaza.
Africa, meanwhile, brought in batsman Vusi Sibanda and spinner Johan Botha for Loots Bosman and Steve Tikolo.
Jayawardene chose to bat but Sanath Jayasuriya was caught off Thomas Odoyo for 11 in the fifth over, although Sehwag collected a six and eight fours in all before wastefully lofting Elton Chigumbura's slower delivery to long-on.
Ganguly and India team-mate Mahendra Dhoni kept the scoreboard ticking over with Dhoni launching two sixes off spinner Botha before the returning Morkel produced an excellent yorker to bowl him for 33.
The Asia captain batted enterprisingly but was denied a half century when he set off for a quick single when Ganguly dabbed the ball down, only to be sent back and beaten by a throw to Sibanda, who was stationed over the stumps at the bowler's end.
Chigumbura finished his spell with figures of 2-84 after ending Ganguly's innings with the score on 298, sub Peter Ongondo running in from deep square leg to take the catch.
Far more impressive, however, was Morne Morkel who claimed a double reward in the final over when Yousuf edged an attempted drive to the keeper and Mohammad Rafique slashed a catch to cover.
Asif's second over, which produced the wicket of de Villiers, also contained three fours, Boeta Dippenaar clipping his first two deliveries to the boundary.
Zimbabwean Sibanda helped add 60 in 10.2 overs with Dippenaar before Dilhara Fernando removed him and then Kemp in the same over.
Boucher, dropped on 19 by substitute Harbhajan Singh at mid-wicket off Rafique, although the India spinner made amends in the 27th over when he took a well-judged catch in the deep to dismiss Dippenaar for 67.
Boucher then skipped down the wicket to hit Sehwag for successive sixes but in the next over lofted Fernando to long-on and despite some valiant late order hitting his team could not threaten the target.