Match ends, Barnsley 3, Millwall 1.
Barnsley sealed promotion to the Championship as two goals in the first 19 minutes set up their League One play-off final win over Millwall.
Ashley Fletcher slotted home after just 88 seconds, before Adam Hammill's 25-yard curling shot doubled the lead.
Both had scored for Barnsley in their Johnstone's Paint Trophy final win over Oxford at Wembley eight weeks earlier.
Mark Beevers fired in Millwall's reply from close range but Lloyd Isgrove's header secured Barnsley's victory.
The Tykes were bottom of League One in December but a superb run of form under interim boss Paul Heckingbottom saw them finish sixth in the table, and their two-year exile from the Championship was ended by wins over Walsall and Millwall in the play-offs.
Millwall were forced into a late change before kick-off when centre-back Byron Webster was injured in the warm-up, with Tony Craig taking his place.
A mix-up in the Lions defence from a long ball allowed Fletcher to take advantage, as the on-loan Manchester United forward held off Carlos Edwards and fired across Jordan Archer into the bottom corner.
The south London side lacked composure and cohesion in the opening 25 minutes, and Barnsley capitalised again when Hammill cut in from the left and bent an exquisite shot into the top corner without being challenged.
Beevers' close-range finish reduced the deficit but the second half was a scrappy affair with few clear-cut chances, and Millwall could not recover from their poor start.
Millwall had been looking to secure an immediate return to the second tier but boss Neil Harris, in his first full season in charge, will have to pick up his squad for another promotion bid next season, having finished fourth in the table.
Barnsley looked comfortable on their second visit of the season to the national stadium, having suffered just one defeat since mid-March to reach the play-offs.
With Millwall increasingly playing the ball long in the second period, it was the Yorkshire side who made the crucial breakthrough, as goalkeeper Archer failed to collect Conor Hourihane's corner and Isgrove headed into an empty net.
The Tykes looked more likely to score a fourth in the closing stages, although Chris Taylor forced Barnsley goalkeeper Adam Davies into a late save.
With 13 victories in 21 games, winning the club's first cup final since 1912 and now winning promotion to the Championship, Heckingbottom has made a strong case to take charge on a more permanent basis.
The 38-year-old - part of the Barnsley squad promoted from the third tier in 2006 - built on work done by Lee Johnson, who left Oakwell for Bristol City in February.
Providing a constant threat for Barnsley on the left touchline, his goal - a sublime long-range effort into the top corner - put the Reds in the driving seat in the first half.
After a successful spell at Barnsley early in his career, Hammill returned to Oakwell in November with the club struggling towards the foot of League One.
His form has been a key reason for their improvement in the second half of the campaign, and having scored in their Football League Trophy final win in April, Hammill found the net at Wembley again to help his side to promotion.
Match ends, Barnsley 3, Millwall 1.
Second Half ends, Barnsley 3, Millwall 1.
Foul by Marley Watkins (Barnsley).
Shaun Williams (Millwall) wins a free kick in the defensive half.
Corner, Millwall. Conceded by Josh Scowen.
Offside, Millwall. Shaun Williams tries a through ball, but Lee Gregory is caught offside.
Attempt saved. Steve Morison (Millwall) header from the right side of the box is saved in the top centre of the goal. Assisted by Shaun Williams.
Attempt blocked. Adam Hammill (Barnsley) right footed shot from the centre of the box is blocked.
Attempt blocked. Ivan Toney (Barnsley) right footed shot from the centre of the box is blocked. Assisted by Josh Scowen.
Attempt missed. Sam Winnall (Barnsley) header from the centre of the box misses to the left. Assisted by Marley Watkins with a cross.
Attempt saved. Chris Taylor (Millwall) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Aiden O'Brien.
Foul by Sam Winnall (Barnsley).
Shaun Williams (Millwall) wins a free kick in the defensive half.
Substitution, Barnsley. Marley Watkins replaces Lloyd Isgrove.
Attempt missed. Aiden O'Brien (Millwall) header from the centre of the box misses to the right. Assisted by Steve Morison with a cross.
Attempt missed. Sam Winnall (Barnsley) right footed shot from the centre of the box is too high. Assisted by Conor Hourihane with a cross following a corner.
Substitution, Millwall. Shaun Williams replaces Carlos Edwards.
Substitution, Barnsley. Ivan Toney replaces Ashley Fletcher.
Corner, Barnsley. Conceded by Lee Gregory.
Substitution, Millwall. Fred Onyedinma replaces Ben Thompson.
Goal! Barnsley 3, Millwall 1. Lloyd Isgrove (Barnsley) header from very close range to the centre of the goal. Assisted by Conor Hourihane with a cross following a corner.
Corner, Barnsley. Conceded by Carlos Edwards.
Conor Hourihane (Barnsley) wins a free kick on the left wing.
Foul by Nadjim Abdou (Millwall).
Foul by Sam Winnall (Barnsley).
Nadjim Abdou (Millwall) wins a free kick in the defensive half.
Corner, Barnsley. Conceded by Shane Ferguson.
Josh Brownhill (Barnsley) wins a free kick in the defensive half.
Foul by Nadjim Abdou (Millwall).
Attempt saved. Aiden O'Brien (Millwall) right footed shot from the centre of the box is saved in the centre of the goal. Assisted by Nadjim Abdou.
Attempt missed. Nadjim Abdou (Millwall) right footed shot from the centre of the box is close, but misses to the right. Assisted by Lee Gregory.
Offside, Millwall. Mark Beevers tries a through ball, but Lee Gregory is caught offside.
Marc Roberts (Barnsley) is shown the yellow card for a bad foul.
Foul by Marc Roberts (Barnsley).
Lee Gregory (Millwall) wins a free kick on the left wing.
Attempt saved. Adam Hammill (Barnsley) left footed shot from the right side of the box is saved in the centre of the goal. Assisted by Lloyd Isgrove.
Corner, Barnsley. Conceded by Mark Beevers.
Attempt missed. Alfie Mawson (Barnsley) header from the centre of the box misses to the left. Assisted by Adam Hammill with a cross following a corner.
Corner, Barnsley. Conceded by Carlos Edwards.
Attempt missed. Sam Winnall (Barnsley) header from the centre of the box misses to the left. Assisted by Lloyd Isgrove with a cross.