Greaves’ 28-ball 45 guided Scotland to 140-9 and he then took two key wickets with his leg spin to keep down Bangladesh to 134-7 in the second first-round match of the day in Muscat.
Greaves, who had earlier rescued Scotland from 53-6 with his batting, sent back Shakib Al Hasan, for 20, and Mushfiqur Rahim, for 38 to dent Bangladesh’s chase.
Pace bowler Brad Wheal returned figures of 3-24 as world number six Bangladesh suffered an early setback in their fight to make the Super 12 stage.
Scotland are behind hosts Oman, who thrashed Papua New Guinea by 10 wickets in the tournament opener, in Group B.
The top two teams will advance into the next stage and join the heavyweights in the seventh edition of T20’s biggest prize.
Bangladesh pinners Mahedi Hasan and Shakib justified their captain’s decision of bowling first by taking regular wickets but Greaves gave Scotland crucial runs with his late cameo of 45.
Scotland tried to rebuild after losing skipper Kyle Coetzer for nought but Mahedi soon struck twice in an over to send back Matthew Cross, for 11, and opener George Munsey, for 29.
Shakib joined forces with another double strike and his wicket of Michael Leask for nought got him past Sri Lanka’s Lasith Malinga as the leading wicket-taker in T20 internationals.
Shakib, who is the only player to achieve a T20 double of 1000 runs and 100 wickets, returned figures of 2-17 while Mahedi was the wrecker-in-chief with 3-19.
Greaves, batting at number seven, hit back with four fours and two sixes in his 28-ball knock as Scotland plundered 53 runs from the last 30 deliveries.
In reply, Bangladesh lost their openers early before Shakib and Mushfiqur put on 47 runs for the third wicket to put the chase back on track.
Greaves broke the stand with his first ball, getting Shakib caught at the boundary and then bowled Mushfiqar at the start of his second over.
Wheal rattled the middle order with key strikes including skipper Mahmudullah Riyad for 23 and even a late burst by Mahedi could not take Bangladesh over the line.