The Chicago Cubs signed Beltran as an undrafted free agent in 1996 and assigned him to the Arizona League Cubs, their rookie-level minor league affiliate. Beltran spent three seasons with the Arizona team, with a combined record of 1–3, with an earned run average of 3.99 in 35 appearances. Midway through the 1999 season, the Cubs promoted him to the Single-A Eugene Emeralds. There his ERA ballooned to 8.36, and the Cubs kept him in Eugene for the 2000 season. Beltran's ERA improved to 2.68, and the Cubs promoted him to the Single-A Lansing Lugnuts, where he went 1–1 with a 9.86 ERA. In 2001, the Cubs moved Beltran up to the Single-A Daytona Cubs, where he went 6–9 with an ERA of 5.00. In November of that year, the Cubs signaled their confidence in Beltran by adding him to their 40-man roster. In 2002, the Cubs promoted Beltran to the Double-A West Tenn Diamond Jaxx. Beltran got off to a good start; by the end of June he was 1–2 with 12 saves and an ERA of 3.42. On June 27, the Cubs called up Beltran to replace Jason Bere, who had gone on the disabled list with a contusion to his right knee. Beltran made his major league debut on June 28, 2002, in an interleague game against the crosstown rival Chicago White Sox. Beltran walked two over a third of an inning but, did not surrender a run. In a second appearance on July 1, Beltran gave up one run in of an inning while striking out one. The next day, the Cubs sent him back to West Tenn to make room for reliever Tom Gordon. In August, the Cubs recalled Beltran as reliever Juan Cruz went on the disabled list. Beltran appeared in an additional nine games for the Cubs, with an overall ERA of 7.50. The Cubs invited Beltran to spring training in 2003, but he started the year with the Triple-A Iowa Cubs; the first time he had played for that team. Beltran pitched the whole year at Iowa, going 6–2 with a 2.96 ERA. The Cubs briefly recalled him in June after David Kelton was sent down, but optioned him back to Iowa before he made an appearance. In July, there was talk that Beltran would be the player to be named later in a deal between the Cubs and the Pittsburgh Pirates in which the Cubs sent José Hernández and Matt Bruback to the Pirates in exchange for Kenny Lofton and Aramis Ramírez; in the end the Pirates took Bobby Hill. Beltran's season ended early because of biceps tendinitis, but during the off-season played in the Caribbean World Series and was named series MVP. The Cubs had him marked down as their future closer. Beltran began the year with Iowa after a "horrendous" spring training. After just a few appearances, however, the Cubs recalled him to replace Andy Pratt, who had struggled. Said manager Dusty Baker of Beltran: " was doing well down there , and we felt he deserved a chance." Beltran made 35 appearances for the Cubs that year, posting a 2–2 record with a 4.36 ERA. He struck out 40 batters in 35 innings, but also gave up eight home runs, including a record-breaking 503-foot shot by Richie Sexson in Bank One Ballpark on April 26, 2004. On July 21, 2004, the Cubs sent Beltran back to Iowa and replaced him with Jon Leicester. A week later, he was traded to the Montreal Expos as part of a four-team deal which sent Nomar Garciaparra to the Cubs. The Expos optioned Beltran to the Triple-A Edmonton Trappers.
Montreal Expos/Washington Nationals
At Edmonton, Beltran worked as a closer and saved five games with an ERA of 1.80. The Expos recalled Beltran in mid-August; he posted a 7.53 ERA over 11 appearances. Beltran pitched the final inning of the last game played by the Expos, an 8–1 loss to the New York Mets. Beltran remained with the Expos as they became the Washington Nationals, but sat out the entire 2005 season because of elbow surgery. He missed much of the 2006 season as well, making a combined 10 appearances with the Gulf Coast Nationals and New Orleans Zephyrs, and was released at the end of the year.
In 2007, the Baltimore Orioles signed Beltran to a minor-league contract and sent him to the Triple-A Norfolk Tides. Beltran did not get the call and spent the entire year in Norfolk, going 2–9 with a 4.70 ERA and eight saves.
Detroit Tigers
2008 found Beltran with the Detroit Tigers, who invited him to spring training. At the conclusion of spring training, Beltran went to the Triple-A Toledo Mud Hens, but was called up almost immediately after the Tigers received word that injured reliever Fernando Rodney's return to the team would be delayed. Beltran made five appearances for the Tigers, allowing five runs in 4 innings for an ERA of 5.79. The Tigers designated him for assignment, and after he cleared waivers returned him to Toledo. He was recalled by Detroit on August 13, but was designated for assignment on August 26, and was sent outright to the minors the following day. Detroit released him at the end of the 2008 season.