The 35-year-old shot a final-round 69 to secure a three-stroke victory over the 20-year-old, his co-overnight leader, who hit 72 to end five under.
Watson, who beat South African Louis Oosthuizen in a play-off two years ago, became the 17th player to win two Masters titles.
Spieth was bidding to become the youngest ever Masters winner in only his third major as a professional was winning by two at the seventh green but bogeys on eight and nine saw his chances diminish.
Swede Jonas Blixt (71) tied for second.
“This one is a lot different to the first one for me,” Watson said. “This one was a lot of hard work.”
Last year’s winner Aussie Adam Scott came 14th,
Image via Getty