Charlie Austin slotted home from the spot in the 76th minute after being bundled over in the box by Daniel Seaborne as Harry Redknapp's men sealed their sixth consecutive clean sheet.
Closest rivals Blackpool and Leicester shared the points after a dramatic 2-2 draw at Bloomfield Road.
Paul Ince's men grabbed a 19th-minute lead when Chris Basham headed home from a Ricardo Fuller cross in the 19th minute, but a Paul Konchesky penalty dragged the Foxes level in the 72nd minute.
Andy King looked to have sealed a dramatic turnaround when he fired the visitors in front two minutes later - but Tom Ince kept his nerve to net an injury-time penalty after Gary MacKenzie had been pulled down by Leicester keeper Kaspar Schmeichel.
Ince's late equaliser enabled Sean Dyche's impressive Burnley to jump up to second in the table after a 2-1 win over Leeds at Elland Road.
Dyche's men got off to a flying start through Scott Arfield's 18th-minute opener and Sam Vokes increased the Clarets' lead three minutes before the break.
Substitute Matt Smith gave Brian McDermott's men hope when he converted a 79th-minute cross from El-Hadji Diouf, but the visitors held firm to secure their second straight win.
Jesse Lingard had a debut to remember as he struck all four goals for Birmingham in their 4-1 thrashing of Sheffield Wednesday at St Andrew's.
Lingard, who signed a one-month loan deal from Manchester United this week, scored a 14-minute first-half hat-trick and added his fourth five minutes into the second half before Kamil Zayatte hit a consolation for Wednesday.
But Bolton's dismal start to the new campaign continued as they remained rooted to the bottom after a 3-1 defeat at Brighton.
Things were looking up for Dougie Freedman's side after a 29th-minute own goal from David Lopez gave them the half-time advantage.
But three goals in five second-half minutes left the Trotters reeling. Jay Spearing headed an own goal from a Kazenga LuaLua free-kick in the 53rd minute, Inigo Calderon put Brighton in front two minutes later and Will Buckley lashed home his side's third from the edge of the box to complete the damage.
David Flitcroft's Barnsley also continue to toil after they were blown away 5-1 by Watford at Oakwell.
Troy Deeney's early opener for the visitors was quickly cancelled out by Jason Scotland's 14th-minute equaliser, but Gianfranco Zola's men proceeded to dominate.
Parity lasted only four minutes before Marco Faraoni put Watford back in front and Fernando Forestieri increased the advantage before half-time. Sean Murray and Ikechi Anya completed the rout after the break.
Two second-half goals from Pavel Pogrebnyak helped Reading continue their solid start to the season with a 3-1 win at Derby.
Pogrebnyak's double in the 47th and 62nd minutes put the Royals in control and although Will Hughes pulled a goal back for Derby, Nick Blackman's injury-time effort sealed the points.
Debut boy Federico Macheda twice gave Doncaster the lead but his side had to settle for a share of the points in a 2-2 draw with Nottingham Forest at the keepmoat Stadium.
Macheda's 34th-minute opener was cancelled out five minutes later by Chris Cohen, and although Macheda hit a second 10 minutes after the break, Andy Reid's 81th minute equaliser maintained Forest's place in the play-off zone.
Middlesbrough boss Tony Mowbray watched his side fight back from the dead against Bournemouth at the Riverside Stadium only to squander their chances of victory in injury time.
Two Brett Pitman penalties gave the Cherries a 2-0 lead inside 12 minutes but Kei Kamara and Mustapha Carayol dragged Boro back level.
Grant Leadbitter gave the home side the lead in the 75th minute but a Jonathan Woodgate own goal sealed a point for the visitors seven minutes from time - and to add to Mowbray's woes Rhys Williams was sent off late for a foul on Wes Thomas.
Millwall's recent revival continued as Scott McDonald's first-half strike gave them a 1-0 win in the south-east London derby at Charlton, while Blackburn and Huddersfield fought out a stalemate at Ewood Park.