So the former slugger signed a one-day minor league contract with Kansas City, then officially retired Friday as a member of the Royals.
"I'm walking away with no regrets," Sweeney said during a ceremony near a field at the Royals' spring training complex, with team officials and minor league players in attendance.
The 37-year-old Sweeney was a five-time All-Star with Kansas City. He said he would remain with the Royals in "some capacity" to work with minor leaguers. He also will throw out the ceremonial first ball for the March 31 opener against the Los Angeles Angels.
Sweeney played for Kansas City from 1995-2007 and spent his last three seasons with Oakland, Seattle and Philadelphia. He finished with a .297 average, 215 home runs and 909 RBIs.
His final at-bat came in the only postseason plate appearance of his career, when he singled last October for the Phillies. Sweeney said he had opportunities to play with other clubs this year.
"But none that had as sweet an ending as a hit in the playoffs in my last at-bat with Philly and this, retiring as a Royal," Sweeney said. "I knew it was time for me to begin the next part of my journey. To put on No. 29 again is a joy. I don't feel like I deserve this."
Sweeney signed with the Royals when he was 17, a 10th-round draft pick in 1991 from a high school in California. He signed as a catcher, but moved to first base in 1999 when Jeff King retired.
Sweeney hit .299 with 197 home runs, 297 doubles and 837 RBIs in 1,282 games with the Royals.
While Sweeney hit .333 with a team-record 144 RBIs in 2000, the club had only one winning season -- 2003 -- when he was with Kansas City. He signed a five-year, $55 million contract extension with the Royals in spring training 2002, but back and knee injuries often put him on the disabled list during that contract.
"It breaks my heart I was not able to add to the [championship] flags at Kauffman Stadium," he said.