Arroyo made his professional debut with the Arizona League Giants, hitting .326/.388/.511 with two home runs and 39 RBIs over 184 at-bats in 45 games. For his play he was named the Arizona League MVP.[8] Arroyo spent 2014 with the Salem-Keizer Volcanoes and Augusta GreenJackets, where he batted .291 with six home runs and 62 RBIs in 89 games, and 2015 with the San Jose Giants[9][10] where he hit .304/.344/.459 with nine home runs and 42 RBIs in 90 games. After the 2015 season he played in the Arizona Fall League.[11] He spent the 2016 season with the Richmond Flying Squirrels,[12][13] compiling a .274 batting average with three home runs, 49 RBIs, and 36 doubles in 119 games.[14]
Arroyo began the 2017 season with the Sacramento River Cats, where he hit .446 with seven doubles, three home runs, and 12 RBIs in 16 games.[15]
San Francisco Giants (2017)
On April 24, 2017, the Giants promoted Arroyo to the major leagues.[15] He made his debut later that night, starting at third base against the Los Angeles Dodgers. On April 25, he recorded his first hit, a single, off of Clayton Kershaw.[16] The following day, Arroyo hit his first Major League home run, a two-run shot off of Sergio Romo.[17] He was sent down to Triple-A on June 4 to make room for Hunter Pence, who was returning from the disabled list.[18]
Tampa Bay Rays (2018–2019)
On December 20, 2017, the Giants traded Arroyo, Denard Span, Matt Krook, and Stephen Woods to the Tampa Bay Rays for Evan Longoria and cash considerations.[19] He began 2018 with the Durham Bulls. Arroyo was recalled to Tampa Bay on May 16, making his Rays debut on May 17 against the Los Angeles Angels. He recorded two singles in five at-bats while playing third base. He was optioned to Triple A Durham where he finished the season. Arroyo finished the season with a .264 batting average and one home run.
Cleveland Indians (2020)
The Rays traded Arroyo, along with Hunter Wood, to the Cleveland Indians on July 28, 2019, in exchange for minor league outfielder Ruben Cardenas and international signing period slot money.[20] Arroyo did not play for Cleveland during 2019, as he worked to rehabilitate from injuries.[21] During the delayed-start 2020 season, Arroyo appeared in one game for Cleveland, playing an inning at third base on July 26, without a plate appearance.[22] On August 6, Arroyo was designated for assignment by Cleveland.[23]
Boston Red Sox (2020–2023)
Arroyo was claimed off waivers by the Boston Red Sox on August 13, 2020. On August 20, he was designated for assignment, without having made an appearance for Boston; he was sent outright to the team's alternate training site on August 23.[24] On September 8, Arroyo was selected back to Boston’s active roster;[25] he made his first appearance for the Red Sox that day, against the Philadelphia Phillies.[26] Overall with the 2020 Red Sox, Arroyo batted .240 with three home runs and eight RBIs in 14 games.[27]
In 2021, Arroyo made Boston's Opening Day roster. He was placed on the injured list on May 9, due to a left hand contusion, and was re-activated on May 25.[28] On June 24, he was again placed on the injured list, due to a right knee contusion,[29] and was activated on July 5,[30] hitting a home run in that evening's game against the Angels.[31] Arroyo returned to the injured list on July 19 with a left hamstring strain,[30] and was reactivated by the team on August 23.[32] He went on the COVID-related injured list on August 27,[33][32] and returned to the team on September 21.[34] During the regular season, Arroyo played in 57 games for Boston, batting .262 with six home runs and 25 RBIs.[27] He also appeared in 11 postseason games, batting 9-for-38 (.237) as the Red Sox advanced to the American League Championship Series.[27]
On March 22, 2022, Arroyo signed a $1.2 million contract with the Red Sox, avoiding salary arbitration.[35] After making the Opening Day roster for Boston, he was on the COVID-related list from June 15 until June 24.[36][37] He was added to the injured list on July 9, due to a left groin strain,[38] and rejoined the team on July 30.[39] In 87 games with Boston, Arroyo batted .286 with six home runs and 36 RBIs.[27]
On January 13, 2023, the Red Sox and Arroyo reached agreement on a one-year contract, avoiding salary arbitration.[40] Once again, Arroyo showed flashes of promise throughout the season, but these flashes were interrupted by injuries. On May 7, Arroyo was placed on the injured list due to a right hamstring strain.[41] He rejoined the team on June 5.[42] In 66 games with Boston through early August, he slashed .241/.268/.369 with 3 home runs and 24 RBI. On August 4, Arroyo was designated for assignment by the Red Sox.[43] After clearing waivers, he was sent outright to the Triple-AWorcester Red Sox on August 6.[44] On October 3, Arroyo elected free agency.[45]
Milwaukee Brewers
On January 25, 2024, Arroyo signed a minor league contract with the Milwaukee Brewers.[46] On November 6, he elected free agency.[47]