In 1965, Harper led the National League with 126 runs scored while hitting .257 with 18 home runs and finishing fifth in the NL in walks. The following year, he put together a career-best 24 game hitting streak from July 17th to August 8th. However, his batting average dropped to .225 in 1967, and he was traded to the Cleveland Indians for three players following the season. In 1968, the deepest season of the second dead-ball era, he hit just .217 on a team that hit .234. In 266 at-bats, he stole only 11 bases and had 6 homers, which was actually fifth-best on the team.

Harper was selected from the Indians by the Seattle Pilots in the 1969 expansion draft as the team's second selection. Facing the California Angels in the team's first game on April 8th, he led off with a double, recording the first hit in Pilots history. Splitting time between second base, third base, and the outfield that year, he led the American League with 73 stolen bases, the most in the circuit since Ty Cobb stole 96 in 1915. He stayed with the club as they became the Milwaukee Brewers in 1970 and went on to have his best season that summer. Primarily playing third base, he hit .296 with 31 home runs (seventh-best in the AL), 38 steals (second in the league), and an OPS+ of 146 (sixth-best in the circuit). He became the first infielder to have a 30-30 season, made the All-Star team, and was sixth in the MVP voting. His numbers dipped in 1971, when he hit .258 with 14 homers and 25 stolen bases, and following the season, he was traded to the Boston Red Sox as part of a ten-player deal.

Primarily playing the outfield for Boston, Harper again led the AL in stolen bases in 1973, when he swiped 53 while hitting 17 home runs. After the 1974 season, he was dealt to the Angels for Bob Heise. After hitting .239 in 89 games for California, his contract was sold to the Oakland Athletics in August 1975. He hit .319 down the stretch of the year for the A's and made the only postseason appearance of his career that fall, walking in his only plate appearance in the ALCS against the Red Sox. He finished up his major league career with the Baltimore Orioles in 1976, playing on a team which also featured Reggie Jackson in his only year in Baltimore.

Following his playing days, Harper was a minor league instructor in the New York Yankees chain prior to serving as a Red Sox coach from 1980 to 1984. He later was a member of the Montreal Expos staff from 1990 to 1999 before another stint as a Boston coach from 2000 to 2002. As of 2011, he was a hitting consultant for the Red Sox.