There are now 22 pitchers who have defeated all 30 teams

This browser does not support the video element.

When Charlie Morton earned the win against the Pirates on June 28 in Atlanta, he reached a milestone shared by a select group.

Morton became the 22nd pitcher to defeat all 30 Major League teams, a feat with obvious obstacles along the way.

For one, MLB’s 29th and 30th teams -- the Rays and D-backs -- didn’t play their first seasons until 1998. Additionally, beating all 30 teams requires wearing multiple uniforms throughout a pitcher’s career -- meaning longtime stars with a single franchise didn’t make the cut.

Still, it takes talent and longevity to earn the “W” against every Major League club.

Here are the 22 pitchers who have achieved that feat, when they did it and who their 30th win came against.

Charlie Morton, Braves
June 28, 2024 vs. Pirates

The final team for Morton to beat was the one that he spent seven seasons with from 2009-15. Morton lost his first career start against the Pirates in June 2022 despite having 12 strikeouts, but he got the best of Pittsburgh the next time around. At age 40, Morton threw 6 1/3 scoreless innings to lead the Braves to a 6-1 win.

Justin Verlander, Mets
May 10, 2023 at Reds

Verlander made just his third career start against the Reds, which was tied for his second-fewest against any MLB franchise at the time. The 40-year-old tossed seven strong innings in his second outing for the Mets, striking out seven Reds as the Mets held on for a 2-1 road win.

This browser does not support the video element.

Gerrit Cole, Yankees
July 10, 2021 at Astros

The 30th and final team Cole vanquished was his previous one. Despite battling an illness, he was masterful, tossing a shutout at Minute Maid Park. Cole allowed just three hits, walked two batters and posted 12 strikeouts in a 1-0 Yankees win over the Astros.

This browser does not support the video element.

Zack Greinke, Astros
Sept. 14, 2019 at Royals

In poetic fashion, Greinke picked up a win against the franchise with whom he became a professional and made his MLB debut to complete the 30-team checklist. The veteran right-hander, then pitching for the Astros, yielded just one run on six hits, walking none and striking out seven over six innings to earn the victory at Kauffman Stadium.

This browser does not support the video element.

Bartolo Colon, Twins
Aug. 20, 2017 vs. D-backs

A 21-year Major League veteran, Colon made at least five starts against every MLB franchise -- including the 11 he played for. He made just seven starts against the D-backs, though, and finally defeated them while with the Twins -- at age 44, no less.

This browser does not support the video element.

Max Scherzer, Nationals
May 11, 2016 vs. Tigers

He rose to stardom with the Tigers from 2010-14, so it was fitting that Detroit was the final team Scherzer had to beat to complete the list. He did so at Nationals Park in historic fashion, tying a Major League record by striking out 20 and walking none in a complete-game win.

This browser does not support the video element.

John Lackey, Cubs
April 18, 2016 at Cardinals

Lackey played for the Cardinals from 2014-15, then beat them for the first time the following season. He pitched seven shutout innings, striking out 11 batters, in a 5-0 Cubs win at Busch Stadium.

This browser does not support the video element.

Tim Hudson, Giants
July 26, 2015 vs. A’s

Hudson spent his first six seasons (1999-2004) with the A’s but made only four career starts against them in 11 years with the Braves and Giants. Hudson got his first win over Oakland in July 2015 with the Giants, pitching five innings in a 4-3 San Francisco win.

Kyle Lohse, Brewers
June 26, 2015 vs. Twins

Lohse beat his 30th team exactly a month before Hudson achieved the feat. He spent five and a half seasons with the Twins and, with Milwaukee, finally beat them nine years after being traded to the Reds.

Dan Haren, Nationals
Aug. 9, 2013 vs. Phillies

Unlike most pitchers on this list, Haren never played for the Phillies, the 30th team he beat. But he’d only started seven games against them before a win with the Nats in August 2013, pitching seven innings of two-run ball.

A.J. Burnett, Pirates
July 21, 2012 vs. Marlins

Burnett spent his first seven seasons with the Marlins, so chances to beat them were few and far between. He dominated them at PNC Park in July 2012, allowing one run in 7 2/3 innings, to join the club of pitchers with wins over all 30 teams.

Derek Lowe, Indians
May 10, 2012 at Red Sox

Lowe was a two-time All-Star and a World Series champion in eight seasons with the Red Sox. In his 16th of 17 Major League seasons, he allowed two runs over six innings as Cleveland won at Fenway Park.

Vicente Padilla, Dodgers
Aug. 10, 2010 at Phillies

Padilla beat his 30th team at Citizens Bank Park, where the “Padilla Flotilla” had once shown up to support him during his six seasons with the Phillies. Padilla wasn’t sharp, allowing four runs in five innings, but the Dodgers put up 15 runs to back him up.

Javier Vazquez, Yankees
July 21, 2010 vs. Angels

Vazquez pitched for six teams during his 14-year career, but none of them were the Angels. He gave up five runs in five innings but still took home the win thanks to a 10-run, 15-hit performance by the Yankees.

Barry Zito, Giants
June 12, 2010 vs. A’s

The 2010 season was a busy one for pitchers finishing off wins over their 30th team. Zito was the first of three, beating the A’s in a Giants uniform five years before his former Oakland teammate Hudson did the same.

Randy Johnson, Giants
April 19, 2009 vs. D-backs

The only Hall of Famer on this list -- so far, anyway -- Johnson spent his 22nd and final season with the Giants. At age 45, he was brilliant against his old team in his third start of 2008, allowing just one hit over seven shutout innings.

Jamie Moyer, Phillies
May 26, 2008 vs. Rockies

Famous for his longevity, Moyer was 49 years old the last time he pitched in the Majors (for the Rockies in 2012). Four years earlier, he beat Colorado for the first time in five tries with seven innings of four-run ball as the Phillies put up a whopping 19 runs.

Woody Williams, Padres
Sept. 26, 2006 at Cardinals

At age 39, Williams delivered a resurgent 2006 campaign for the Padres. He went 12-5 with a 3.65 ERA, leading the National League in win percentage. One of those victories came against his former team as Williams earned the win at Busch Stadium in his second-to-last start of the year.

Curt Schilling, Red Sox
Sept. 10, 2004 at Mariners

Schilling made only seven career starts against the Mariners, tied for his second-fewest against any team. In 2004 -- not long before the Red Sox snapped the Curse of the Bambino -- Schilling gave up just two runs over seven innings in a 13-2 Boston win in Seattle.

Terry Mulholland, Twins
July 19, 2004 at Tigers

At age 41 and in the twilight of his career, Mulholland, who already had a no-hitter and 17 MLB seasons to his name, beat the only team he hadn’t beaten to that point with 6 2/3 strong innings at Comerica Park. The left-hander gave up just one run on four hits, walking one and striking out two in a 3-1 Twins victory.

Kevin Brown, Yankees
March 31, 2004 at Rays

Brown was still going strong at 39 years old when he beat the Rays in 2004 and joined the All-30 club. While he wasn’t quite at the level of his peak years, he posted a 2.39 ERA in 211 innings for the Dodgers in ‘03 and a 4.09 ERA in 132 innings in his first year with the Yankees in ‘04.

Al Leiter, Mets
April 30, 2002 at D-backs

Leiter became the inaugural member of this club when he threw seven brilliant innings against Arizona at what was then known as Bank One Ballpark (now Chase Field). He gave up only three hits, walked none and struck out two, even adding a hit of his own at the plate in the 10-1 Mets win.

This browser does not support the video element.

More from MLB.com