Ireland, who are bidding to avoid last place after losing four second round matches, saw Porterfield give them a confident start of 92 with Jeremy Bray (31) after skipper Trent Johnston won the toss and decided to bat.
Kevin O'Brien, who made 48 off just 44 balls with two sixes and as many fours, took Ireland past the 200-mark and gave the innings much-needed impetus during a 39-run fifth wicket stand with Johnston who made 30.
O'Brien, in the company of Johnston, smashed the Bangladesh bowlers for 77 runs in the last ten overs, with 57 runs coming in the last five.
He helped Porterfield add a quickfire 48 for the fourth wicket before he was finally run out in the 48th over.
Porterfield, who has two hundreds to his credit in 15 one-day internationals, looked set for another three-figure mark before he paddle-swept paceman Mashrafe Mortaza to short fine-leg for Mohammad Rafique to take a simple catch.
He hit three boundaries during his steady 136-ball knock.
Bangladesh missed left-arm paceman Syed Rasel who sprained his ankle in a warm-up session, minutes before the start. Shahadat Hossain took his place but was unimpresive in his nine overs, conceding 51 runs.
Porterfield and Bray negotiated Bangladesh's left-arm spin trio well before Saqibul Hasan brilliantly ran out Bray, beating the batsman at the striker's end.
Eoin Morgan (five) also fell to a run out before Niall O'Brien (10) miscued a reverse sweep and was caught off Hasan to leave Ireland at 128-3.
Kevin O'Brien used his feet to the spinners, hitting Abdur Razzak for a towering six at long-on to nullify the Bangladesh's spinners who managed just one wicket between them.