The Three Lions entered the match off the back of a 2-1 loss to the Czech Republic on Friday, but Gareth Southgate's side responded in impressive fashion to collect three important points, meaning that they are now just one victory away from guaranteeing their spot in next summer's tournament.
Events on the field were largely overshadowed by matters off it, though, with racist chanting throughout the 90 minutes threatening the abandonment of the qualification clash.
After a slow start to proceedings, England took the lead in the seventh minute, and it was a special goal from Marcus Rashford, who worked his way into the Bulgarian box before picking out the back of the net with a stunning effort.
The attacker has struggled to carry the goalscoring burden for Manchester United this season but showed plenty of confidence to make the breakthrough in Sofia after being found by Ross Barkley.
The Three Lions doubled their lead in the 20th minute, though, when a brilliant team move ended with Raheem Sterling driving a low cross into Barkley, who could not pass up the chance to score from close range.
Southgate's side never got to grips with the Czech Republic on Friday night, but the 2018 World Cup semi-finalists were extremely comfortable in Sofia as they continued to dominate the possession.
There was a stoppage just before the 30-minute mark with Harry Kane coming together with the referee amid suggestions of chanting towards Sterling and Tyrone Mings, which led to an announcement inside the stadium as part of UEFA's three-step protocol for dealing with racism at matches.
Play resumed moments later, and the visitors scored their third of the night in the 32nd minute when Barkley headed a brilliant Kane cross into the back of the net from close range.
Petar Zanev struck over Pickford's crossbar late in the first period as Bulgaria looked for a route back into the match, before Rashford missed the target with a powerful attempt down the other end.
Six minutes of additional time were signalled at the end of the first period, with step two of UEFA's protocol brought into action as there were more complaints of racist chanting inside the stadium.
The first half ultimately ended with England leading 4-0 as Sterling tapped a low Kane cross into the back of the net to cap off another fine move, although matters off the field had overshadowed what was a very positive 45 minutes of football from Southgate's side.
Bulgaria goalkeeper Iliev Ivanov had to keep out a powerful strike from Kane early in the second half as England, who were the first team on the field after the break, looked to add a fifth.
Bozhidar Kraev then missed the England goal from distance before Sterling fired just wide of the post down the other end during an open period of the Euro 2020 qualification clash.
Sterling had another half-chance just before the hour after meeting a cross from Kieran Trippier, but the home side's goalkeeper was on hand to make a smart save as the score remained 4-0 in Sofia.
The same two players went head to head once again moments later and again it was a brilliant save from Ivanov as Bulgaria managed to keep the score down despite the immense pressure.
Zanev then tested the reactions of Pickford with a rasping effort from distance, before Ivanov kept out a strike from Kane after the Tottenham Hotspur forward had been found by Rashford.
England had their fifth in the 69th minute, though, when Sterling, having been released by Kane, expertly found the back of the net in a one-on-one situation.
Kane had been denied by the post in the 83rd minute, but the Three Lions captain made it six in the final exchanges when he netted after more lacklustre defending from the hosts.
As it transpired, the game was allowed to finish when at one point it looked likely to be abandoned, and while the result was excellent for England, it was another hugely unsettling evening due to events off the pitch.
Next up for Southgate's side is a home game against Montenegro on November 14 - where a win would guarantee their spot at Euro 2020 regardless of results elsewhere - while Bulgaria's search for their first victory in 12 months will continue at home to the Czech Republic, who remain second in the section.
BULGARIA (4-3-3): Iliev; Pashov, Hadzhiev, Terziev, Zanev; Kostadinov, Sarmov (Kraev 46'), Despodov; Wanderson (Malinov 76'), Isa (G Ivanov 68'), Popov
ENGLAND (4-3-3): Pickford; Trippier, Maguire, Mings, Chilwell; Barkley (Mount 73'), Winks, Henderson; Rashford (Wilson 76'), Kane, Sterling (Sancho 73')