Defender Joe Bryan struck twice in extra time after the two London sides were locked at 0-0 at the end of 90 minutes at Wembley.
Henrik Dalsgaard scored a late consolation for Brentford.
Full-back Bryan broke the deadlock for Fulham in the 105th minute when he caught out Brentford goalkeeper David Raya with a free-kick from the left side which was 35 yards out.
While Raya and everyone else expected a cross, Bryan curled the ball into the near post to break the deadlock.
Bryan wrapped up the victory for Fulham with three minutes of extra-time left when he grabbed his second of the night.
The left-back swapped passes with Aleksandar Mitrovic and stroked past Raya from inside the area to give Fulham boss Scott Parker the biggest win of his short managerial career.
Promotion was confirmed for Fulham, but only after Henrik Dalsgaard had pulled one back for Brentford in the 124th minute.
He headed home after Christian Norgaard had knocked a free-kick across the face of goal.
“I’m not the hero, every single one of them, fans and people around us who have been with us all season is,” Bryan told Sky Sports.
“We’ve been written off five, six, seven, eight, nine, 10 times I think I read somewhere we were supposed to be scared of them.
“We took it to them, we scored twice, they made it hard for us but they’re a good team and they’ve been playing really well.
“I can’t believe we made it straight back up.”