The Cottagers could have secured their place on Good Friday, but a 2-1 defeat at Derby was the first time they had suffered back-to-back defeats this season.
However, they bounced back at Craven Cottage and took the lead with their first real chance of the game as Mitrovic headed home.
Carvalho added Fulham’s second and just before half-time Mitrovic scored 40 Sky Bet Championship goals when he took a throw-in and fired the ball past the Preston keeper.
The Serbian striker had already surpassed Ivan Toney’s Championship goalscoring record with 14 games left in the season and is now just two behind Guy Whittingham’s 42 after a 46-game second-tier season for Portsmouth in 1992-93.
Fulham have dominated the second tier this season and secured promotion with 26 wins, eight draws and just eight defeats, having scored 98 goals.
Preston nearly took the lead in the fifth minute when Cameron Archer ran down the left before playing Ched Evans, whose shot bounced off Tosin Adarabioyo and the home side were able to scramble the ball.
Goalkeeper Marek Rodak had to be alert again two minutes later to tip Ben Whiteman’s effort over the crossbar and keep the score level.
Fulham scored in their first real attack of the game, with Joe Bryan coming in from the left and playing Mitrovic smartly from behind the Preston backline to send the Serb home through the legs of Daniel Iversen.
The Cottagers had a chance to add to their lead in the 24th minute when the ball came from Neeskens Kebano to Mitrovic and he returned the ball to Carvalho but his shot was wide of the target.
The home side doubled their advantage just after half an hour when Kebano’s ball in the box deflected into Carvalho’s path and he fired a first shot into the net.
Fulham added a third just before half-time, Mitrovic scoring his 40th of the season in clinical fashion, taking a throw-in and firing home after being played by Harry Wilson, who leads the Championship assist chart .
Mitrovic came awfully close to his hat-trick less than five minutes into the second half when he pounced on a loose ball and ran for goal, only to have Iversen’s outstretched leg deflect the ball on the cross-bar.
Iversen then denied the 27-year-old again in the 53rd minute as Fulham continued to press for a fourth goal, but they lacked the same intensity as in the first half and the score remained 3-0, with cheering fans pouring onto the pitch at the final whistle with their Premier League place confirmed.