Smith’s first-half strike was cancelled out by Marcus Harness four minutes into the second period but the striker struck again.
That was the first of three goals in seven minutes as Richard Wood headed in Dan Barlaser’s free-kick and Ben Wiles saw the game out by scoring in the 62nd minute.
AFC Wimbledon hit back from a Lee Gregory brace as they drew 2-2 with Sheffield Wednesday.
Gregory scored in both halves for the Owls, including a second-half penalty conceded by Paul Kalambayi, but Nesta Guinness-Walker and Jack Rudoni were able to pull two goals back to share the spoils.
James McClean struck twice for Wigan to secure an emphatic 4-0 victory against Bolton but the derby clash was marred by crowd trouble.
Will Keane scored early in the first half and Callum Lang and McClean both struck in the second as the Latics pulled clear of their below-par hosts to stay third.
But Wigan’s dominant display was spoiled by second-half crowd trouble. Missiles were thrown as McClean celebrated his opening goal while advertising signs were ripped down by Latics’ followers and more debris was hurled on to the outfield by a section of home fans. A number of spectators were ejected.
Referee Charles Breakspear stopped short of taking the teams off but spoke to police, stewards and both managers before allowing the game to continue.
A brace from Panutche Camara helped Plymouth retain their lead at the top of League One with a 3-1 win over Oxford.
Matt Taylor opened the scoring for the U’s in the fifth minute but Jordan Garrick equalised six minutes later before a goal in each half from Camara ensured the Pilgrims remained in top spot.
First-half goals from Anthony Stewart and Adebayo Akinfenwa made it four league wins in a row for second-placed Wycombe with a 2-0 victory against bottom of the table Doncaster.
Sunderland were able to hang on to beat Gillingham 2-1 despite being reduced to 10 men after Elliot Embleton was sent off in the second half.
Danny Lloyd gave Gillingham the lead from a first-half penalty but Aiden O’Brien poked Dan Neil’s cross home to equalise for the Black Cats on the cusp of half-time.
Tom Flanagan scored what proved to be the winner for Sunderland early in the second half before Embleton was given his marching orders in the 67th minute for a challenge on Jack Tucker.
Shaun Whalley scored the only goal of the game as Shrewsbury ended a run of three straight defeats by beating MK Dons 1-0.
Goals from Callum Johnson, Danny Andrew and Ged Garner earned Fleetwood a first win in five, beating Crewe 3-0, while Kyle Vassell scored his first league goal to earn Cheltenham a 1-0 victory over Accrington.
Joe Ironside scored two minutes from time to snatch a point for Cambridge as they held Ipswich to a 2-2 draw while Regan Poole also left it late as his stoppage-time strike earned Lincoln a 2-1 win over Charlton.