Sunderland suffered their first league defeat of the season as Burton won the battle of last season's relegated sides.
It was another boost for Kenny Jackett’s table-toppers Pompey who are now the only unbeaten side.
Jamie Allan and Kyle McFadzean gave Burton a 2-0 half-time lead, with Sunderland having Charlie Wyke stretchered off just before the break.
Wyke's replacement Chris Maguire pulled one back from long range but Albion held on.
Doncaster came from behind to win 4-1 at Walsall and climb above their opponents to fifth place in the table.
Morgan Ferrier put Walsall ahead but John Marquis levelled from the penalty spot before the break and Mallik Wilks and James Coppinger gave Rovers a 3-1 lead. Matty Blair added a final flourish in stoppage time.
Third-placed Barnsley were also beaten, 1-0 at Coventry after Jordan Willis' brave close-range header 10 minutes from time.
At the other end of the table, Shrewsbury recorded their first win of the season by beating Southend 2-0. Greg Docherty put Town in front inside five minutes and Lee Angol scored on the stroke of half-time.
That left bottom club Plymouth as the only team without a win. Mark Cullen scored the goal as Argyle lost 1-0 to Blackpool, who survived the stoppage-time dismissals of both Marc Bola and Donervon Daniels.
Ian Henderson completed his hat-trick with a brilliant volley as Rochdale beat Gillingham 3-0 to climb to 13th in the table.
Josh Morris' first-half brace helped Scunthorpe to a 3-2 win at AFC Wimbledon.
Liam Trotter pulled one back early in the second half but Ike Ugbo restored the two-goal cushion before the Dons hit back again through Kwesi Appiah.
Karlan Ahearne-Grant and Lyle Taylor gave Charlton a 2-0 win at Bradford which left them just a point outside the play-off places, while Andrew Shinnie's goal earned Luton a 1-0 win over Bristol Rovers.
Sean McConville earned Accrington a 1-1 draw after Cian Bolger's opener for Fleetwood, while Wycombe and Oxford drew 0-0.