The Twins, trailing 3-2 since the fourth inning, grabbed the lead in the eighth on RBI hits from Trevor Plouffe and Ryan Doumit.
The Braves were down to their last out in the ninth against Minnesota closer Glen Perkins when Evan Gattis smacked a score-tying solo homer into the left-field stands, forcing extra innings.
In the 10th, Heyward hit a two-out double off Brian Duensing (0-1) and Freeman followed by sending a broken-bat blooper into right field for the game-winning hit.
Craig Kimbrel (1-1) earned the win with a scoreless top of the 10th for the National League East-leading Braves, who overcame a 1-hour, 15-minute rain delay to post their sixth consecutive win.
Justin Morneau, Doumit and Pedro Florimon each provided two hits and an RBI for reeling Minnesota, which dropped a seventh straight.