Ben Stokes was the star on the day as he firstly took 4-26 in Bangladesh's first innings to help his team get a lead of 45.
Then with the team struggling on 62-5 in the second innings, Stokes made a brilliant 85 to help the tourists get up to a lead that is a very good one on a tricky pitch.
It all means that a very exciting day is in store tomorrow with both teams still in with a chance of winning the game.
Stokes takes three wickets as the hosts lose five wickets for 27 runs
The hosts began day three on 221-5 in their first innings. The main objective of the team would have been to try and get some kind of lead but that didn't materialise as they lost their last five wickets for 27 runs.
Shakib Al Hasan, who was 31 not out overnight, was first to go without adding to his score as Moen Ali got his third wicket of the innings.
Night watchman Shafiul Islam was next to fall for two of the bowling of Adil Rashid.
Stokes then came on and got the final three wickets of the innings, removing Mehedi Hasan for one, Sabbir Rahman for 19 and Kamrul Islam for a duck to finish with figures of 4-26 from his fourteen overs.
It meant that hosts were bowled out for 248 which gave England a lead of 45 after the first innings.
England then began their second innings before lunch and just as it looked like everything was going smoothly before lunch they lost three wickets for two runs.
Visitor's top order fails again
Firstly, Alistair Cook fell for 12 of the bowling of Mehedi before Shakib removed Joe Root for one and Ben Duckett for 15.
At lunch then England were struggling along at 28-3 with a lead of 73.
It didn't get much better after lunch as Gary Ballance once again struggled as he fell for nine of the bowling of Taijul Islam.
Ali, who made 68 in the first innings, was the fifth man out for 14 as Shakib got his third wicket of the innings to reduce the tourists to 62-5.
Stokes and Bairstow put on 127 for the sixth wicket to put England in control
Jonny Bairstow then came at number seven and needed to put on a big partnership with Stokes.
The pair successfully got the team to tea at 108-5 with a lead of 153.
After tea then both players showed their class as they took their partnership past the century mark.
During the partnership, Stokes went past his half-century as he looked to make a big score for his team.
Bangladesh though finally got some rest bite when they finally broke the partnership on 127 when Kamrul bowled Bairstow for 47.
Shakib takes five wickets to give hosts some hope
Not long after that Stokes also fell for 85 to give Shakib his fourth wicket of the innings as the hosts tried to restrict England's lead the best they could.
Rashid in at number nine joined Chris Woakes at the crease and the pair took England's lead past the 250 mark.
Shakib though was still going strong at the end of the day and he got his fifth wicket of the innings when a successful review removed Rashid for nine to leave the game still in the balance.
That was to the be the final wicket of the day though as Stuart Broad and Woakes saw the team to the close on 228-8 with a lead of 273 going into the fourth day.