The 18-year-old, who is wearing Lionel Messi's number 10 shirt this season at the Nou Camp, helped Barca to a 1-0 win against Dynamo Kyiv in the Champions League on Wednesday night.
His new deal will run until 2027.
Fati is the second Barca player in a week to sign a new deal with a 1bn euro buyout clause, following Pedri, 18.
The forward, who has four senior caps for Spain, has been at Barcelona since he was 10 years old and last month scored on his return to the side after 10 months out with a knee injury.
Fati has played 47 first-team games for the club, scoring 15 goals.
He became the second-youngest Barca player when he made his debut for the club aged 16 years and 298 days and is the club's youngest scorer in La Liga.
©️ BBC Sport