Rovers, hit for six by Walsall on Saturday, made the worst possible start when O`Hanlon`s glancing header from Peter Leven`s free-kick gave Dons the early lead.
Daniel Powell sliced through the centre of the home defence to make it 2-0 after 61 minutes.
Jeff Hughes netted a consolation goal from the penalty spot for Rovers with seven minutes remaining after Mathias Doumbe had handled a shot from Rene Howe.
By then, the visitors were down to 10 men after O'Hanlon was sent off for a second bookable offence for tripping Will Hoskins in the 67th minute.
Bristol Rovers 1-2 Milton Keynes Dons: Match Report - view commentary, squad, and statictics of the game as it happened.