The deal includes a partial guarantee on the contract's final year, sources said.
The Spurs announced the signing Monday, but did not release terms.
Gasol, 37, will be starting his 17th NBA season. The six-time All-Star has averaged 17.9 points and 9.4 rebounds for his career.
He declined a $16.2 million option for the 2017-18 season in June. That gave the Spurs salary-cap space to complete several other offseason initiatives, including signing free agents Rudy Gay, Brandon Paul and Joffrey Lauvergne. The Spurs are also finalizing a deal to re-sign Manu Ginobili for his 16th season with San Antonio.
Gasol signed a two-year deal with the Spurs a year ago and averaged 12.4 points and 7.8 rebounds a game.
Gasol fractured the fourth metacarpal on his left hand in January, and eventually lost his starting job to Dewayne Dedmon. Still, Gasol embraced the new role, and transformed into somewhat of a stretch 5 to better fit his new responsibilities off the bench.
ESPN's Michael C. Wright contributed to this report.