Freeman piled up 237 yards, completing 21-of-26 pass attempts without an interception. He found Kellen Winslow and Mike Williams for two scoring strikes each as Tampa Bay (9-6) stayed in contention for a post-season berth.
LeGarrette Blount racked up 164 yards on 18 carries for the victors, who will need a win next week at New Orleans and the help of other teams to reach the playoffs.
The loss by Seattle (6-9), meanwhile, means the Seahawks will play the St. Louis Rams next week in a winner-take-all battle for the NFC West title.
Charlie Whitehurt replaced injured starting quarterback Matt Hasselbeck in the second quarter and managed only 66 yards on 11-of-18 passing.
Hasselbeck left with a hip injury after scoring on a 1-yard TD run.
Marshawn Lynch rushed for 53 yards on 14 carries for Seattle.