Before the 2004 season López signed as a free agent with the Baltimore Orioles. He hit .316 with 86 RBI, and the following season hit .278 with 49 RBI, while seeing a decline in his game time from 150 to 103 games.
In the 2006 midseason he was acquired by the Boston Red Sox from Baltimore in exchange for minor league outfielderAdam Stern and cash consideration. López debuted with Boston on the same day after Doug Mirabelli left the game early after an ankle injury. On September 8, the Red Sox released López due to Jason Varitek returning from the disabled list, which minimized his playing time.
In January 2007, it was reported that López reached a preliminary agreement on a $750,000, one-year contract with the Colorado Rockies, but he did not play for them during the regular season. Before the 2008 season he signed a minor league deal with an invitation to spring training with the Atlanta Braves, in an attempt to return to the majors. But after being told he would not make the opening day lineup, López retired for good. "I feel perfect physically," he said. "It's just that the hitting wasn't there and unfortunately I didn't throw the guy out on the stealing attempts. That's a concern. I don't blame them. My role as a backup catcher is to be able to throw every single runner out."  He plans to continue in the Atlanta Braves organization performing other duties.
In a 15-season career, López posted a .287 average with 260 home runs and 864 RBI in 1,503 games. His 243 home runs as a catcher ranks eighth on the career list at that position. His final game was on September 2, 2006.
López married Analy Hernández, a model. They had two children: Javier Alexander (born 11/6/95) and Kelvin Gabrielle (10/17/99). They divorced and López married his second wife Gina Brodbeck on June 23, 2004, and had a son, Brody, born in 2010.