Penn's contract is worth a maximum of $48 million, with nearly $20 million guaranteed, NFL Network insider Jason La Canfora reported.
Bucs general manager Mark Dominik announced the signing Saturday during the team's first practice. Penn joined the workout at One Buc Place about 15 minutes later.
Penn is a sixth-year pro who has appeared in 48 career games, including 44 in a row as the Bucs' starting left tackle. He declined a $3.168 million tender offer and stayed away from the team's voluntary offseason workouts and mandatory minicamp while seeking a long-term contract.
Penn, who has played under one-year contracts for the past three seasons, said he made a call to his agent a few days ago and pushed for a resolution to his dispute.
"I said: Let's get it done. Let's make some sacrifices if we need to," Penn said. "... It wasn't about financial security. I wanted longevity, a commitment. That's what I got."
Second-year Bucs coach Raheem Morris was relieved to open camp with his left tackle in place. He and Penn remained in contact throughout the offseason, often through text messages.
"I understand the business of this game. ... That's just what it was," the coach said. "It was a business deal."
The Associated Press contributed to this report.