Cavarretta died of complications from a stroke, his son, Phil Cavarretta Jr., told the Associated Press. He also had suffered from leukemia for several years.
Cavarretta, a left-handed-hitting first baseman and outfielder, played 20 seasons with the Cubs from 1934 to 1953 before playing his final 77 games in 1954 and '55 for the cross-town White Sox.
In a statement, the Cubs called Cavarretta "a local hero and a tremendous player." He ranks in the top 10 in most of the team's offensive categories.
Cavarretta led the National League in batting in 1945 with a .355 average as the Cubs won the National League pennant. They lost to the Detroit Tigers in the World Series and have not won a pennant since.
He was player-manager from 1951 until the spring of 1954, when Cavarretta told owner P. K. Wrigley he didn't believe the team could win. He was fired and quit the organization, moving on to the White Sox.
Cavarretta remained in the game as a coach, minor league manager and scout into the 1970s.
Born in Chicago on July 19, 1916, Cavarretta showed flashes of his greatness at Lane Technical High School as a pitcher and hitter, throwing a no-hitter and leading his American Legion team to a national championship in 1933.
He signed with the Cubs before graduating from high school, then was sent to the minors before being called up to the majors to play first base. On Sept. 25, 1934, Cavarretta made his Wrigley Field debut, hitting a home run in a 1-0 victory over the Reds.
The Cubs reached the World Series three times during his career, losing each time. He also played in three All-Star games.
In addition to his son, Cavarretta is survived by his wife, Lorayne; daughters Diana, Patti, Cheryl and Lori; and several grandchildren and great-grandchildren.