Walters was drafted by the St. Louis Cardinals in the 11th round of the 2006 player draft (346th overall).[5] He climbed three levels in 2007 and earned the Cardinals minor league pitcher of the year honors.[1] He then spent most of 2008 in Triple-AMemphis. He went 9-4 for the Cardinals' top affiliate, with a 4.87 ERA over 122 innings.[6]
Walters made his major league debut on April 17, 2009, as the starting pitcher against the Chicago Cubs. He had been called up when Chris Carpenter was placed on the 15-day disabled list.[7] He became the first Cardinals rookie to make his first major-league start at Wrigley Field in nearly three decades.[8] Walters pitched 4.0 innings, leading 4-3 in the game before being replaced, pitching against veteran Carlos Zambrano, giving up 6 hits (one hit was a double), 3 runs (all earned), walked 2, struck out 7, with a 6.75 ERA. He faced 19 batters, threw 98 pitches (59 for strikes), with 4 groundouts and 1 fly out.[9] He picked up his first MLB win on May 27, 2010 when he pitched five scoreless innings against the San Diego Padres.[10]
On July 25, 2011, Walters gave up a grand slam to Houston Astros outfielder Carlos Lee. This made Walters and Lee the first pair of players in MLB history in which the batter (Lee) hit grand slams in each of his only two at-bats against the pitcher (Walters). (The previous one had been hit on July 21, 2009.)[11] In parts of three seasons with the Cardinals, Walters was 2–0 with a 7.38 ERA in 19 appearances (four starts).[5]
On December 14, 2011, Walters signed a minor league contract with the Minnesota Twins.[5] He began the season with the AAA Rochester Red Wings, where he was the opening day starter.[1] He was called up by the Twins on May 9, 2012.[14] On May 22, 2012, Walters threw his first career complete game against the Chicago White Sox in a 9-2 win.[15] He was 2–5 with a 5.69 ERA in 12 starts for the Twins in 2012[5] and 3–3 with a 4.01 ERA in 14 starts for Rochester.[6]
On October 29, Walters became a free agent after refusing his outright assignment to the minor leagues.[16] However, on November 1, Walters signed a new minor league deal with the Twins that included an invitation to spring training.[17]
The low light of his 2013 season was on June 22, when he didn't even make it out of the first inning while pitching against the Cleveland Indians. He walked five batters while only getting two batters out.[18] He was designated for assignment on July 4.[19] In eight starts for the Twins in 2013, he was 2–5 with a 5.95 ERA.[5] He also started 19 games that year for Rochester and was 7–5 with a 4.18 ERA.[6]
Kansas City Royals
Walters signed a minor league deal with the Kansas City Royals on November 19, 2013,[5] and started the 2014 season with the Triple-A Omaha Storm Chasers. He appeared in 10 games for them, eight of which were starts and was 1–4 with a 7.97 ERA.[6]
Toronto Blue Jays
Walters and Melky Mesa were dealt to the Toronto Blue Jays for cash considerations on May 26, 2014.[20] Walters split the season between the Double-A New Hampshire Fisher Cats and the Triple-A Buffalo Bisons. He made eight starts for New Hampshire and was 2–3 with a 2.60 ERA and made nine starts for Buffalo and was 4–2 with a 4.56 ERA.[6] He was released on September 14, 2014.[21]