After playing the 1992 season with the Royals, he moved on to the St. Louis Cardinals, where he would have his two best seasons, batting .342 and .325, respectively, while finding a home at first base and being named to the National League All-Star team in both the 1993 and 1994 seasons. He signed a lucrative contract with the Philadelphia Phillies after the 1994 season due to a dispute over a no-trade clause the Cardinals wouldn't give him, and he moved to the outfield for the Phillies, where he performed adequately over the 1995, 1996 and 1997 seasons, but injuries to his thumb and hamstring hampered his effectiveness. In 1998, he was traded mid-season to the Anaheim Angels, where he hit .347 in 19 games before moving to the Detroit Tigers the next year. He hit a collective .231 for the Tigers over two seasons before he retired in 2000 due in part to a severed right hamstring.