On November 15, 2002, he was traded by the Tigers to the San Diego Padres for Gene Kingsale. During the 2003 season, Rivera appeared in 19 games for the Padres and hit.170. He also played in 13 games for their Triple-A Portland Beavers, batting.160.
Chicago White Sox/Oakland Athletics
Rivera was placed on waivers by the Padres and selected by the Chicago White Sox on June 9, 2003. They assigned him to the Triple-A Charlotte Knights. Rivera began the 2004 season with Charlotte and batted.100 in 11 games. On April 22, he was selected off waivers again, this time by the Oakland Athletics. He played for the A's Triple-A team, the Sacramento River Cats in 2004, batting.224 in 49 appearances.
Milwaukee Brewers
He began the 2005 season with the Atlantic City Surf of the Independent Atlantic League but shortly signed with the Milwaukee Brewers as a free agent. He played the rest of the season with the Triple-A Nashville Sounds. His 2006 playing time was split between Nashville and Milwaukee. He served as the Brewers' backup to Damian Miller, then as a starter at the end of the season. With Miller returning in 2007, and the acquisition of Johnny Estrada from the Arizona Diamondbacks, Rivera began the season with Nashville, but also played in 11 games for Milwaukee. On June 25, 2007, he caught a perfect game with Sounds batterymate Manny Parra. In 2008, he was again promoted to the majors as a backup for Jason Kendall, and also played first base occasionally. On August 13, 2009, Rivera had his first career multi-home run game against the San Diego Padres. He played three games for Nashville that season and the rest of the year with Milwaukee.
On December 22, 2009, Rivera signed a minor league contract with the New York Yankees. On April 3, 2010, before the season began, he was released when the Yankees signed Chad Moeller to be their backup catcher for the Triple-A Scranton/Wilkes-Barre Yankees.
On April 20, 2010, Rivera signed with the Los Angeles Dodgers and was assigned to the Double-A Chattanooga Lookouts. On August 4, he was promoted to the Triple-A Albuquerque Isotopes. He was released on August 28. He hit.257 in 58 games with Chattanooga and.125 in 14 games for Albuquerque.
Florida Marlins
On September 2, 2010 he signed a minor league contract with the Florida Marlins and was assigned to the Triple-A New Orleans Zephyrs, where he hit.111 in three games. He appeared in seven games with the Marlins late in the season and was hitless in 14 at-bats.
Return to Milwaukee
On October 17, 2010, Rivera signed a minor-league contract with the Milwaukee Brewers for the 2011 season. He was called up to the major leagues on May 17, 2011 when Sean Green was designated for assignment. He elected to become a free agent following the season, but was re-signed by Milwaukee to a minor-league deal shortly after. The Brewers released Rivera on March 30, 2012.
Boston Red Sox
Rivera signed with the Long Island Ducks for 2012, but before the season started, on April 20, 2012, he signed a minor-league deal with the Boston Red Sox. He played for the Pawtucket Red Sox, Triple A team for the Red Sox. He has three sons.