The Lions, who won the semi-final first leg 3-1, looked to have put the tie to bed when Lee Gregory slotted home.
But Jamie Proctor's strike just before half-time, after Jordan Archer blocked his first effort, gave City hope.
Proctor then wasted a further chance moments later, and it proved costly as Millwall held on to set up a showdown with Barnsley on 29 May.
Neil Harris' side were rarely troubled after Proctor twice turned down the opportunity to shoot when excellently placed - and, if anything, they looked the more likely to score again after the break.
Centre-half Byron Webster came closest, sending a header narrowly wide of Ben Williams' post, as the second leg petered out in front of a raucous crowd at The Den.
Millwall's success against Bradford means that, across this season's Football League play-offs, all five teams who won the first leg of their semi-final went on to reach Wembley.
The majority of the damage was done even before half-time at Valley Parade, where goals from Gregory, Steve Morison and Joe Martin had put the Lions in full command against Bradford.
The Bantams have twice previously come back from a first-leg deficit to progress to the final and win promotion, but Gregory's calm, side-footed finish ensured there would be no repeat in south-east London.
Millwall must now beat Barnsley, who thumped Walsall 6-1 over two legs in the other semi-final, if they are to secure an instant return to the Championship.
Millwall manager Neil Harris:
"I'm delighted for the players, They deserved it over the two legs.
"We really had to battle, both tonight and last Sunday. It was tough but we've earned our place at Wembley.
"Barnsley will be really tough opponents. They've done brilliantly all season and especially against Walsall."
Match ends, Millwall 1, Bradford City 1.
Second Half ends, Millwall 1, Bradford City 1.
Delay over. They are ready to continue.
Delay in match  (Bradford City).
Foul by Rory McArdle (Bradford City).
Steve Morison (Millwall) wins a free kick in the defensive half.
Substitution, Millwall. Tony Craig replaces Byron Webster because of an injury.
Corner,  Bradford City. Conceded by Steve Morison.
Corner,  Bradford City. Conceded by Shaun Williams.
Substitution, Millwall. Shaun Williams replaces Lee Gregory.
Kyel Reid (Bradford City) is shown the yellow card for a bad foul.
Foul by Kyel Reid (Bradford City).
Ben Thompson (Millwall) wins a free kick in the defensive half.
Shane Ferguson (Millwall) is shown the yellow card.
Lee Evans (Bradford City) wins a free kick in the attacking half.
Foul by Shane Ferguson (Millwall).
Attempt blocked. Lee Evans (Bradford City) right footed shot from more than 35 yards is blocked.
Chris Taylor (Millwall) is shown the yellow card.
Billy Clarke (Bradford City) wins a free kick in the defensive half.
Foul by Ben Thompson (Millwall).
Rory McArdle (Bradford City) is shown the yellow card for a bad foul.
Foul by Rory McArdle (Bradford City).
Steve Morison (Millwall) wins a free kick in the defensive half.
Lee Evans (Bradford City) wins a free kick in the attacking half.
Foul by Lee Gregory (Millwall).
Corner,  Bradford City. Conceded by Shane Ferguson.
Paul Anderson (Bradford City) wins a free kick in the attacking half.
Foul by Joe Martin (Millwall).
Lee Evans (Bradford City) is shown the yellow card for a bad foul.
Foul by Lee Evans (Bradford City).
Ben Thompson (Millwall) wins a free kick in the defensive half.
Attempt missed. Chris Taylor (Millwall) right footed shot from the centre of the box is too high following a corner.
Corner,  Millwall. Conceded by Rory McArdle.
Foul by Rory McArdle (Bradford City).
Lee Gregory (Millwall) wins a free kick in the attacking half.
Substitution, Bradford City. Steve Davies replaces Nathan Clarke.
Tom Thorpe (Bradford City) wins a free kick in the defensive half.
Foul by Steve Morison (Millwall).
Substitution, Bradford City. Paul Anderson replaces Tony McMahon.
Offside, Millwall. Chris Taylor tries a through ball, but Lee Gregory is caught offside.
Millwall drew at home to Bradford to seal a 4-2 aggregate win and reach the League One play-off final at Wembley.