Davis was an outfielder developed in the Giants minors system. In his first regular season in 1982, he hit .261 with 19 HR, 76 RBI and 24 stolen bases, and also led all National League outfielders in assists. In 1984 Davis finished third in NL batting average (.315), behind Tony Gwynn (.351) and Lee Lacy (.321). When he led the league in fielding errors in 1986, his nine errors tied the major league record for fewest errors by a category leader. After five seasons in San Francisco, including two All-Star appearances in 1984 and 1986, Davis signed with the Angels as a free agent before the 1988 season.
In his first two years with California, Davis hit 21 HR and 93 RBI (in 1988), and then 22 HR and 90 RBI (in 1989). In 1990, hampered by chronic back problems and defensive shortcomings, Davis moved from full-time outfield duty to a DH role. After signing with Minnesota the following year, Davis remained a DH and would do so for the rest of his career.
Davis contributed to the Twins with his switch-hitting ability, as the Twins' lineup already possessed right-handed batting Kirby Puckett and left-handed batting Kent Hrbek. Though he hit well from both sides of the plate, Davis performed better from the left side, as many switch hitters do due to their facing more right-handed pitching. In 1991 he led the Twins in home runs (29), RBI (93), doubles (34), walks (95), intentional walks (13), times on base (244), pitches seen (2,469), games played (153), slugging average (.507), on base percentage (.385), OPS (.892), home run frequency (18.4 at bat per HR), and most pitches seen per plate appearance (3.89). With these numbers, Davis helped Minnesota rise from a last-place finish the previous year to the AL West title. In the 1991 World Series, in which he hit two home runs, Davis and the Twins defeated the Atlanta Braves in seven games. Davis declined in production in 1992 (12 HR and 66 RBI), and as a free agent the following year returned to the Angels.
Davis provided four years of solid production for California, including 27 HR and a career-high 112 RBI in 1993. In 1994, he hit .311, with 26 HR and 84 RBI, and appeared in the All-Star game in the strike-shortened 1994 season. In 1995, he hit .318 with 20 HR and 86 RBI, and in 1996 hit .292, 28 HR and 96 RBI. In 1997 he was traded to Kansas City for starter Mark Gubicza. In his one year with the Royals, Davis hit .269 with 90 RBI and a career-high 30 HR.
Davis spent his final two seasons with the Yankees, winning his second and third World Series rings. He finished his career in 1999 hitting .269 with 19 HR and 78 RBI. In 2000, the Yankees used many different players to fill the DH role formerly occupied by Davis, including Shane Spencer, José Canseco, Glenallen Hill, Chuck Knoblauch, David Justice and Jim Leyritz.