Playing baseball over the objections of his father, who wanted him to be a doctor, Rojas originally signed with the Havana Sugar Kings, a Triple-A affiliate of the Cincinnati Reds, and made his National League debut with the Reds in . Traded to the Philadelphia Phillies during the off-season, Rojas eventually became the Phils' starting second baseman.
He was an NL All-Star in . As a Phillie, Rojas teamed with shortstop Bobby Wine in a double-play combination described as a parody of a popular song of the time—"The Plays of Wine and Rojas." While with the Phillies, Rojas played at least one game at all nine positions in the field, including pitcher and catcher. However, by the time the Phillies traded Rojas to the St. Louis Cardinals in , it appeared his career might be over. St. Louis traded the struggling Rojas to the Kansas City Royals for outfielder/third baseman Fred Rico on June 13, 1970. Kansas City, a team in its second year of existence, wanted a veteran presence to steady its infield.
Rojas contemplated retirement, but went on to appear in four consecutive All-Star games from 1971 to 1974. In the 1972 Game in Atlanta, he hit a pinch-hit, two-run homer in the eighth inning, which was the first time that a non-American-born player ever homered for the American League in the mid-summer classic.
Though a fan favorite, Rojas lost his job as the Royals' starting second baseman to Frank White in , but stayed with the team for two more years, filling in at first, second and third base, and as designated hitter as well. Rojas would hold the distinction of having played the second-most games at second base (789) in Kansas City Royals history, second only to White.
After his playing career, Rojas coached and scouted for various teams. In , he became only the third Cuban-born manager in major-league history when he took the helm of the California Angels, whom he guided to a fourth-place finish with a 75-79 record before being replaced that September. In , Rojas managed one game for the Florida Marlins after manager Rene Lachemann was fired.