The dashing left-hander hit an undefeated 62-ball 75 to lift New Zealand to a fighting 212-9 in their 50 overs before taking 2-23 to dismiss the home team for 137 in 42.4 overs.
New Zealand, who lost a one-day international against Bangladesh for the first time when they went down in the first match by seven wickets here on Thursday, picked up in all three departments, with Oram leading the way.
Bangladesh's hopes for a repeat of their stunning win were dashed as they lost wickets at regular intervals after losing opener Tamim Iqbal off the second ball of the innings.
Skipper Mohammad Ashraful (40) and Zunaed Siddique (32) were the main run-getters.
Iqbal was one of Kyle Mills' three victims as the paceman checked Bangladesh's run-chase from the outset. Mills finished with 3-13.
Zunaed Siddique, who hit a match-winning 85 on Thursday, then added 53 for the third wicket with Ashraful before New Zealand bowled and fielded well to spark a middle-order collapse which saw the home team lose eight wickets for 66 runs.
Oram dismissed a dangerous looking Ashraful to seal the fate of the match. New Zealand fielders also effected three run-outs.
Earlier, it was Oram who helped New Zealand avoid another low total with a pugnacious knock.
Oram struck five fours and four sixes during his knock and helped New Zealand edge past their lowest total of 201-9 against Bangladesh in the first match.
Oram was particularly brutal in the final over of the innings, smashing three sixes and a four off left-arm spinner Abdur Razzak, who conceded 25 runs.
The lanky 30-year-old added 41 for the eighth wicket with Mills (17) and an invaluable 45 for the final wicket with Jeetan Patel, who managed four not out.
New Zealand's batting fell apart again here, with the only other significant contributions coming from Ross Taylor (33) and Jesse Ryder (30) as left-arm paceman Syed Rasel wrecked the top-order with 3-32.
Rasel, who went wicketless in his two costly overs in the first match, started the slump by removing Brendon McCullum (12), Jamie How (nought) and Jesse Ryder (30) to check the visitors, who were cruising at 31-0.
Taylor then added a sedate 41 for the fifth wicket with Daniel Flynn (25) before Oram did the rescue work.