Despite freezing, windy conditions that made passing difficult, Bulgaria produced an inspired display of attacking football at the Vasil Levski national stadium to remain unbeaten.
Italy top the standings with 10 points from four matches, one ahead of Bulgaria, who have played one more game. Czech Republic lost 3-0 at home to Denmark later on Friday, with the Danes going third above the Czechs on goal difference.
Tonev, making a rare start in the absence of first-choice midfielder Stanislav Manolev, who suffered a thigh injury in training earlier this week, put the home side in front with a diagonal shot - his first international goal - after five minutes.
Tonev enjoyed a slice of luck for his second goal seven minutes before the break, his long-range effort appearing to pose little threat to Andrew Hogg but the Malta keeper allowed the ball to slip through his hands.
Captain Ivelin Popov made it 3-0 with an easy finish with Georgi Milanov, who became Bulgaria's youngest Footballer of the Year in December, providing a clever assist from the left wing two minutes after half-time.
Soon after, lively Emil Gargorov also managed to get his name on the scoresheet following a defensive mix-up and Tonev completed his hat-trick with another delightful shot from outside the penalty area.
Defender Ivan Ivanov added a sixth goal 12 minutes from time.
The game was played without spectators after FIFA punished Bulgaria following incidents during October's qualifier against Denmark in Sofia when a group of fans racially abused Denmark's Patrick Mtiliga.
Bulgaria visit Denmark on Tuesday while Italy travel to Malta and Czech Republic are away to Armenia.
The Danes sealed a relatively surprising win in Olomouc with three second-half goals to secure their first Group B victory and resurrect their World Cup qualifying hopes.
After two draws and a defeat, the Danes needed three points to keep tabs on Bulgaria and leaders Italy and after a cautious first half they struck through Andreas Cornelius's powerful strike on 57 minutes.
Ten minutes later Simon Kjaer turned home a corner and Niki Zimling sealed an impressive victory eight minutes from time when he pounced on a poor clearance from Theodor Gebre Selassie to beat keeper Petr Cech.
Czech coach Michal Bilek brought on playmaker Tomas Rosicky, still not fully fit, late in the game but it was too little too late and only a few acrobatic saves from Cech stopped Denmark from scoring again.
Italy top the group on 10 points from four games, one ahead of Bulgaria who have played a game more. The Czechs and Danes both have five points from four games.
The Czechs face Armenia on Tuesday while Denmark take on Bulgaria.