The Japanese world number 44 beat the Russian 20th seed 6-3 6-2 in one hour 10 minutes.
Osaka, who dropped just one set throughout the tournament, dominated on serve to outmuscle Kasatkina.
The 20-year-old is the youngest champion at Indian Wells since Ana Ivanovic in 2008.
It was the first time two players aged under 21 had contested the final at Indian Wells since Serena Williams, then aged 20, beat 18-year-old Kim Clijsters in 2001.
Osaka, Williams and Clijsters are the only unseeded players to win the women’s title at the event.
Both players had ousted several top-ranked players in California, notably in the semi-finals where Osaka thrashed world number one Simona Halep and Kasatkina outlasted Venus Williams in three sets.
Kasatkina broke in the opening game of the match after successive forehand errors from Osaka, but a fine forehand winner in the next game put the match back on serve.
An ace from Osaka in the seventh game saved break point and the Japanese got the decisive break in the next game.
A backhand strike – her 14th winner, compared with just three from Kasatkina – allowed Osaka to take the first set in 39 minutes.
Osaka continued her dominance, breaking in the opening game of the second set before racing to a 5-1 lead with a forehand down the line.
Kasatkina found her backhand to force her opponent to serve out the match but Osaka hit the fastest serve of the match – a 118mph ace – on her way to closing out victory.
The win is Osaka’s first title at any level of tennis and will see her move up to a career-high of 22nd in the world rankings.