Steven Finn took 5-42 and James Anderson 3-16 as 10 wickets fell in an extended afternoon session.
Rain washed out the morning session, with play eventually beginning at 1215 GMT.
Bangladesh was all out for 216 on Saturday evening, but England captain Andrew Strauss waited until just before the start of play before deciding to enforce the follow on.
The move was almost instantly vindicated. Tamim Iqbal, having made centuries in his previous two innings, stylishly cut the first ball of the day from James Anderson for two, but was out to Anderson’s next ball, caught behind by Matt Prior.
Under overcast skies, Anderson and his fellow opening bowler Finn produced a barrage of hostile deliveries that repeatedly passed the outside edge.
Imrul Kayes was the next man out, falling to Finn off the final ball of the sixth over for nine.
Kayes attempted a hook, but failed to control the shot and was caught at by a tumbling Ajmal Shahzad at deep backward square leg.
In the next over Junaid Siddique was out for six to Anderson, courtesy of a sharp catch at gully by Kevin Pietersen.
The final ball of the eighth over saw Jaharul Islam out for 0 after edging a short ball from Finn to Prior, before Mohammad Ashraful went for 14, caught at first slip by Jonathan Trott off Anderson.
Shahzad replaced Finn at the Brian Statham End and bowled Bangladesh captain Shakib Al Hasan for one in his second over.
Mushfiqur Rahim and Mahmadullah then took Bangladesh past its previous lowest score in Test cricket, 63, but their partnership, the longest of the innings, was broken when Finn replaced Shahzad.
The first ball of Finn’s second spell was one of his worst of the Test, but Mushfiqur clipped it straight to the substitute fielder Karl Brown at midwicket.
Mahmudullah attempted to play some shots, but after twice hitting Finn for four at the start of the 26th over, he tried to hook the final ball of the over and was caught by Prior for 38.
Shafiul Islam was the ninth man down, caught by Strass for four at first slip off Finn, though only after the catch was referred to the television umpire.
The innings ended after just two hours and 44 minutes when Abdur Razzak skied a delivery from Graeme Swann to Eoin Morgan at deep long on, meaning Bangladesh had lost 10 wickets in a session for the second consecutive innings.
Victory meant England won the two-match series 2-0.