Pace bowler Mahmood took 3-27 and left-arm spinner Panesar finished with 3-25 after England captain Michael Vaughan won the toss and decided to bowl in an attempt to exploit early moisture and bounce.
Left-hander Saqibul Hasan top-scored with an unbeaten 57 and added 47 for the seventh wicket with Mashrafe Mortaza (13) to give Bangladesh's total a degree of respectability on a day when England did everything right from the start.
Hasan remained unbeaten after a marathon 139-ball knock, hitting six boundaries and a six. Aftab Ahmed (10) and Abdur Razzak (15) were the only other batsman to reach double figures.
England's three-pronged pace attack responded to their captain's call by taking wickets at regular intervals as they bowled to an accurate line and length in a game which both sides needed to win to remain in hunt for a semi-final place.
Bangladesh, with opener Shahriar Nafees replacing Javed Omar from the team which pulled off a stunning 67-run upset of South Africa in Georgetown last week, lost Tamim Iqbal in the second over of the innings.
The teenager failed to keep Mahmood's short delivery down and was caught in the gully.
Iqbal made eight, and was soon followed by captain Habibul Bashar (four) to a run out off a dropped catch by Vaughan to leave Bangladesh at 23-2.
Nafees miscued drive off Mahmood was dropped by Vaughan at mid-wicket, but the England skipper threw the ball to the striker's end where Bashar, who stopped in the middle before running, was left stranded.
Nafees failed to capitalise on the chance, and another miscued drive off Mahmood rebounded off wicket-keeper Paul Nixon's gloves to second slip where Andrew Strauss snapped up a sharp catch. Nafees made nine.
Andrew Flintoff bowled Mushfiqur Rahim (seven) with a beautiful delivery, while James Anderson returned for his second spell to remove Mohammad Ashraful (one) and Mohammad Aftab in successive overs to leave Bangladesh reeling at 65-6.
Ashraful, who scored a match-winning 87 against South Africa, edged a straight delivery to Nixon to end his team's hopes of a fight back.
Hasan flicked Ravi Bopara to the boundary to bring up the 100 and then took Bangladesh past their lowest World Cup total of 108 made against South Africa at Bloemfontein in 2003.
Panesar then bowled Mortaza and in his next over had Mohammad Rafique caught by Strauss.
Mahmood wrapped up the innings when he had Syed Rasel caught in the slips by Flintoff in the 38th over.
Bangladesh 143 all out in 37.2 overs (Saqibul Hasan 57 n o; Mahmood 3 for 27, Panesar 3 for 25, Anderson 2 for 30) Vs England (yet to bat).