Herrera was called up to the majors for the first time on September 21, 2011. That day, he gave up three earned runs over two innings, against the Detroit Tigers. He made one other appearance, on September 26, retiring all three batters he faced. In 2012, Herrera appeared in 76 games and posted a 2.35 ERA over 84 innings while striking out 77. On August 30, 2012, Herrera recorded his first career save, against Detroit. Herrera spent part of the 2013 season in the minors. Herrera finished the season with an ERA of 3.86 in innings pitched, striking out 74 at a rate of 11.4 strikeouts per nine innings, still a career mark. Herrera also surrendered a career-high nine home runs. In 2014, Herrera became the go-to seventh inning option for manager Ned Yost. Along with set-up man Wade Davis and closer Greg Holland, Herrera was part of one of the most prolific late inning trios in all of baseball. His ERA was 1.41, the best mark of his career, and he did not allow a home run during the entire regular season. He had his first professional at-bat in Game 3 of the World Series in San Francisco, when he struck out. He ended his first postseason with an aggregate 1.80 ERA, striking out 16 in 15 innings pitched. During a game against the Oakland Athletics on April 19, 2015, Herrera was ejected for throwing a pitch behind Brett Lawrie. One game prior to this incident, his teammate Yordano Ventura was also ejected for hitting Lawrie. On April 22, 2015, Herrera was suspended for five games. Herrera appealed the suspension. On April 25, 2015, Herrera was suspended an additional two games for his role in a brawl against the Chicago White Sox. His four-seam fastball had the third-highest average speed of any MLB pitcher's pitches in 2015, at 98.4 mph. Herrera, with the absence of Greg Holland in the 2015 postseason, became the eighth inning set-up man for the Royals. At the conclusion of the postseason, Herrera notched a 0.66 ERA with 22 strikeouts in innings pitched with three holds. Having spent the vast majority of his career as a seventh inning and eighth inning reliever, Herrera took over the role of the Kansas City Royals' closer following a sidelining injury to Wade Davis in 2016. Herrera collected 12 saves in 15 opportunities as closer. He ended his season with a 2.75 ERA, striking out 86 in 72 innings pitched surrendering a career low 12 walks in a season. Herrera was named to the 2016 MLB All-Star Game, his second consecutive trip to the Midsummer Classic. In 72 games, he had an ERA of 2.75 with 12 saves. After the trade of Wade Davis in 2017, Herrera was named the full-time closer for the Royals. He was 26-for-31 in save opportunities, ending the season with a career-high 4.25 ERA in innings pitched. In 27 appearances for the 2018 Royals, Herrera compiled a 1.05 ERA with 14 saves, 22 strikeouts, and only two walks in innings of work.
Washington Nationals
On June 18, 2018, the Royals traded Herrera to the Washington Nationals in exchange for three minor-league players. With Washington he was 1-2 with three saves and a 4.34 ERA.
Chicago White Sox
After he posted a combined 2.44 ERA for the Royals and the Nationals the previous season, the White Sox and Herrera agreed to a two-year deal on January 8, 2019. The contract carries an $8.5 million annual value and includes a club option worth $10 million for the 2021 season; it also includes a $1 million buyout. His first season with the White Sox was disastrous, as he endured the worst season of his career. He was 3-3 with a 6.14 ERA in 57 games. On July 31, 2020, Herrera was designated for assignment in order to make room for Nick Madrigal on the 40-man roster.
Scouting report
With an overhand delivery and quick explosion from the stretch, Herrera throws hard like many Dominican pitchers; his two-seam fastball averages about 97mph and tops out at 103. He pairs his fastball with a deceptive changeup around 87–88 and an occasional curveball in the mid-80s. Herrera occasionally throws a sinker to induce groundball outs. His slider is often touted as his best off-speed pitch.