The San Francisco Giants drafted Otero out of USF in the 21st round of the 2007 Major League Baseball Draft. They added him to the 40 man roster to protect him from the Rule 5 draft after the 2011 season. Otero made the club's Opening Day roster in 2012. Otero won the 2012 Harry S. Jordan Award, which is given in recognition of the player in his first big league camp whose performance and dedication in Spring Training best exemplifies the Giants' spirit. In his major league debut, on April 7, 2012, Otero recorded his first career major league strikeout against Justin Upton.
Oakland Athletics
On March 26, 2013, Otero was claimed off waivers by the New York Yankees. The Yankees designated him for assignment the next day. Otero was then claimed off waivers by the Oakland Athletics on March 29, 2013, and immediately optioned to the Triple-A Sacramento River Cats. Otero was designated for assignment after the club acquired Stephen Vogt from the Tampa Bay Rays on April 5, 2013. He was outrighted to Sacramento on April 7. On June 14, 2013, he was brought up from Sacramento as Hideki Okajima was optioned down. He had his first major-league win in relief of A.J. Griffin on July 2, 2013 against the Chicago Cubs. In 33 games for the A's, he was 2-0 with a 1.38 ERA in 39 innings. For the 2014 season, Otero served as a mainstay in the A's bullpen, pitching a career high 72 games. He was 8-2 with a 2.28 ERA in innings. On September 30, 2014, Otero was the losing pitcher in the 2014 American League Wild Card Game, giving up two earned runs in the bottom of the 12th inning. He struggled the following season, appearing in 41 games but having an ERA of 6.75 in innings.
Cleveland Indians
On November 3, 2015, Otero was claimed off of waivers by the Philadelphia Phillies. They designated him for assignment on December 11. He was traded to the Cleveland Indians for cash considerations on December 18. In his first season with Cleveland, he rebounded from the previous season, having an ERA of 1.53 in 62 appearances. He had an ERA of 2.85 in 2017. The following season proved to be a difficult one for Otero as he registered an ERA of 5.22 in 61 appearances. On October 31, 2019, the Indians announced they had declined their club option on Otero's contract for the 2020 season, making Otero a free agent.
New York Yankees
Otero signed a minor league deal with the New York Yankees in February 2020.