SAN FRANCISCO -- Left-hander Jeremy Affeldt and the San Francisco Giants have agreed to terms on a three-year contract, a person familiar with the negotiations said Monday night.

The person spoke on condition of anonymity because the deal had not been completed. Affeldt is expected to undergo a physical on Tuesday in San Francisco, another person with knowledge of the situation said, and that is typically the final step in finalizing a contract.

The 33-year-old Affeldt went 1-2 with a 2.70 ERA in 67 appearances covering 63 1-3 innings this season for the World Series champions.

When the season ended, Affeldt said he wanted to stay with San Francisco but needed a multiyear deal to provide some security for his family -- he has a wife and three young sons. Affeldt also was a key member of the bullpen during the club's 2010 run to the franchise's first championship since 1954.

General manager Brian Sabean called re-signing Affeldt one of his top offseason priorities. Affeldt lives on the West Coast in his hometown of Spokane, Wash., so re-signing with the Giants was appealing from that standpoint as well.

He has spent the past four of his 11 major league seasons with San Francisco, going 10-9 with a 2.73 ERA in 237 1/3 innings and 184 outings.

Affeldt dealt with two fluke, non-baseball injuries the past two seasons.

In late April, he sprained his right knee and went on the disabled list after he reached out to catch his son, Walker, as the 60-pound 4-year-old jumped off the couch to hug his arriving father.

On Sept. 8, 2011, the pitcher sliced his non-throwing hand nearly to the artery while separating frozen hamburgers during an outdoor barbecue with his family on an off day. The paring knife he was using pushed through a hamburger patty and deep into his hand. Affeldt came within a millimeter of an artery and underwent surgery about eight hours after the injury to repair nerve damage in his pinkie.