On February 1, 2010, Rosales was traded along with Willy Taveras to the Oakland Athletics for Aaron Miles and a player to be named later. In his first three years with the A's, Rosales batted.234 with a.292 on-base percentage in 415 at-bats, 11 home runs, 47 RBIs, and two stolen bases in four attempts. On November 30, 2012, Rosales avoided arbitration by signing a one-year, $700,000 deal with the A's. He began 2013 on the disabled list, and was activated on April 25, replacing Andy Parrino. On May 8, 2013, Rosales hit what appeared to be a game tying home run, but was ruled a double despite the ball hitting a railing in left field and bouncing back onto the field. Umpire Ángel Hernández reviewed the play and upheld the original ruling as a double. Following the controversial call, manager Bob Melvin was ejected for arguing and the A's lost to the Cleveland Indians 4–3. Rosales got a lot of starting time at shortstop with Jed Lowrie playing second base against left-handed pitchers. However, after a long run of facing right-handed starters and the emergence of Grant Green, Rosales was designated for assignment on July 8. After Green struggled in his first stint in the majors, Rosales was called up to replace him on July 24. When the Athletics acquired Alberto Callaspo on July 31, coincidentally for Green, Rosales was designated for assignment, starting his 11-day journey.
Rosales was designated for assignment on July 31, and on August 2, Rosales was claimed off waivers by the Texas Rangers. Rosales did not appear in any games for the Rangers prior to being designated for assignment on August 5 to make room for Joey Butler. On August 8, Rosales was claimed by the Athletics. He played in one game with Oakland before they once again designated him for assignment on August 10, and once again he was claimed by the Texas Rangers on August 12. In 51 games for Oakland in 2013, Rosales hit.191/.267/.316 with 4 HR and 8 RBI.
Texas Rangers
Rosales started twice for the Rangers in 2013, but was mostly used off the bench in his 17 games. In 68 games with the Athletics and the Rangers, Rosales hit.190/.259/.327 with 5 HR and 12 RBI. On November 14, Rosales signed a one-year, $750,000 deal to avoid arbitration with the Rangers for 2014. He was designated for assignment on March 30, 2014. He was called up to the majors on June 30, 2014. He was non-tendered on December 2, 2014 and became a free agent but re-signed on January 5, 2015. He was designated for assignment yet again on August 19, 2015, and released four days later.
On January 1, 2016, Rosales signed a minor league contract with the San Diego Padres. On April 3, 2016, the Padres announced that Rosales had made their Opening Day roster. Rosales appeared in the most games in a full season in his career, hitting.229 with 13 HR and 35 RBI in 105 games.
Third stint with Oakland
On January 25, 2017, Rosales signed a one-year contract with the Oakland Athletics. He appeared in 71 games for the Athletics, hitting.234.
Arizona Diamondbacks
On July 31, 2017, Rosales was traded to the Arizona Diamondbacks for Jeferson Mejia. He appeared in 34 games with the Diamondbacks, hitting.202 with 3 HR and 9 RBI. He appeared in a lone game in the NLDS without recording a hit in 3 plate appearances. He was granted free agency on November 2, 2017.
On February 1, 2018, Rosales signed a minor league contract with the Philadelphia Phillies. He was released by the Phillies on March 23, 2018.
Cleveland Indians
On March 27, 2018, Rosales signed a minor league deal with the Cleveland Indians. The Indians purchased Rosales's contract on September 4, 2018. He appeared in 13 games for the Indians, hitting.211 with 1 HR and 2 RBI. He was granted free agency on October 29, 2018.
Minnesota Twins
On February 8, 2019, Rosales signed a minor league deal with the Twins that included an invitation to Spring training. He was released on March 22, 2019. He re-signed with the Twins on March 26, and opened the season with the Rochester Red Wings.
Second stint with Cleveland
On May 4, 2019, Rosales was traded from the Minnesota Twins to the Cleveland Indians. The Twins organization received cash in return from the Indians for that deal, as Rosales was immediately sent to Triple-A Columbus after the deal went through.
Post playing career
On November 5, 2019, Rosales was hired by the Oakland Athletics as a minor league coach.