After a solid start, Bangladesh's innings fell away with four wickets lost for seven runs in 29 balls.
Oram (three for 30) made the initial breakthrough with two top order wickets and a run out before wrapping up the innings with nine balls to spare by bowling last man Syed Rasal for 10.
Fellow all-rounder Scott Styris followed up with four for 43.
All the Bangladesh top order made it past 20 but no-one was able to press on to a major score.
However, tailender Mohammad Rafique struck two sixes in his unbeaten 30 and put on 34 for the tenth wicket with Rasel.
Bangladesh, with opener Javed Omar replacing Shahriar Nafees following the 10-wicket defeat against world champions Australia, made steady progress.
Javed, who'd shared a stand of 79 with Tamim Iqbal during Bangladesh's two-wicket warm-up victory against New Zealand, showed his class by lofting left-arm quick James Franklin for four over mid-off.
By that stage the Black Caps had seen new-ball bowler Michael Mason leave the field midway through an over.
That meant three quicks had gone off injured in the last two matches here following the early exits Saturday of Australia's Shane Watson and Bangladesh's Tapash Baisya.
New Zealand then saw Franklin exit with a migraine.
Back on the field, an opening stand worth 55 was ended in the 17th over. Teenage left-hander Tamim Iqbal, on 29, tried to sweep Oram but over-balanced and was stumped by Brendon McCullum.
Omar went soon afterwards for 22, cutting a ball from pace bowler Oram too close to him for the stroke and edging through to wicket-keeper McCullum.
The batsman walked off without waiting for the umpire's decision and Bangladesh were 62 for two.
Aftab Ahmed and Saqibul Hasan rebuilt steadily with a third-wicket partnership of 43 although the run-rate remained at under four an over.
Ahmed, looking to up the tempo on 27, tried to attack medium-pacer Styris. But while he got elevation on a lofted drive he lacked distance and substitute fielder Mark Gillespie held a catch above his head at long-on.
Habibul Bashar, Bangladesh's captain, was run out for nine going for a second run by Oram's direct hit from the point boundary.
And 122 for four was transformed into 127 for five when Hasan (25) was beaten for pace by Shane Bond, who took an impressive two for 15 off 10 overs, and clean bowled.
That became 127 for six when new batsman Mushfiqur Rahim went for a five-ball nought, superbly bowled by a full length Bond delivery that moved away late.
Styris struck twice in three balls to remove Mashrafe Mortaza and Abdur Razzak but left-hander Rafique hit back by hoisting the medium-pacer high over long-on for six.
Bangladesh 174 all out in 48.3 overs (Mohd Rafique 30 n o,Tamim Iqbal 29, Aftab Ahmed 27, Saqibul Hasan 25, Javed Omar 22; Oram 3 for 30, Styris 4 for 43, Bond 2 for 15) Vs New Zealand (yet to bat)