En 2006, il enchaîne avec une autre excellente saison, gagnant 18 parties à nouveau pour les White Sox. Il ne perd que 7 décisions.
En 2007, il affiche un dossier victoires-défaites perdant (10-13) mais ajoute une 6esaison de 10 matchs gagnés ou plus.
Angels de Los Angeles
Jon Garland en 2008 à sa seule saison avec les Angels.
Après huit saisons chez les White Sox, Garland est échangé le aux Angels de Los Angeles d'Anaheim en retour du joueur d'arrêt-courtOrlando Cabrera. Sa moyenne de points mérités (4,90) est plutôt élevée mais il remporte néanmoins 14 victoires contre 8 défaites. Ce sera sa seule saison avec le club d'Anaheim.
Garland termine la saison 2009 avec les Dodgers, remportant trois décisions sur cinq en six départs, avec une excellente moyenne de 2,72 points mérités alloués par partie. Son bilan pour la saison est de 11-13 avec une moyenne de 4,01 en 33 départs pour les Diamondbacks et les Dodgers.
Padres de San Diego
En janvier 2010, Garland signe un contrat d'un an et une année d'option avec les Padres de San Diego[7].
À son unique saison chez les Padres, Garland mérite 14 victoires en 33 départs et sa moyenne de points mérités de 3,47 est sa meilleure depuis l'année 2005. L'année 2010 est la dernière d'une série de 9 saisons consécutives avec au moins 10 victoires. Il lance 200 manches exactement pour San Diego: en 9 ans, il n'a jamais lancé moins de 191 manches en une saison et a atteint les 200 manches de travail à 6 reprises.
Retour chez les Dodgers
Le , il rejoint à nouveau les Dodgers de Los Angeles, avec qui il signe un contrat pour la saison 2011 avec une année d'option pour 2012[8]. Il n'amorce que 9 parties durant la saison 2011 et ne remporte qu'une décision sur six. Sa moyenne de points mérités s'élève à 4,33 en 54 manches au monticule. Il est opéré à l'épaule en juillet, ce qui met un terme à sa saison[9].
Le , le vétéran signe un contrat des ligues mineures avec les Indians de Cleveland[9]. Sa blessure à l'épaule survenue en 2011 le tient à l'écart du jeu toute la saison 2012 et il ne joue pas pour les Indians[10]
Rockies du Colorado
Le , Garland signe un contrat des ligues mineures avec les Mariners de Seattle[11]. Il effectue quatre départs au camp d'entraînement des Mariners et maintient une belle moyenne de points mérités de 2,25. Il demande cependant d'être libéré de son contrat lorsqu'il apprend qu'il n'a pas été retenu dans la rotation de lanceurs partants des Mariners pour la saison sur le point de s'amorcer. L'équipe acquiesce à sa requette et le , Garland rejoint les Rockies du Colorado[12].