Playing baseball over the objections of his father who wanted him to be a doctor, Rojas was an All-Star for the Philadelphia Phillies in 1965, but by the time he was traded to the St. Louis Cardinals in 1970, it appeared his career might be over. St. Louis traded the struggling Rojas to the Kansas City Royals, a team in its second year of existence who wanted a veteran presence to steady its infield. Rojas contemplated retirement, but went on to appear in four straight All-Star games for his new team.
A fan favorite, Rojas lost his job as the Royals' starting second baseman to Frank White in 1976, but stayed with the team for two more years, filling in at first, second, and third base and designated hitter. Over the course of his 16-year career, Rojas played at least one game at all nine positions in the field, including pitcher and catcher.
Following his playing career, Rojas coached and scouted for various teams, and in 1988 Rojas 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 1996, Rojas managed two games for the Florida Marlins.
During the 1999 playoffs, while coaching for the New York Mets, Rojas was suspended for five games for getting into a shoving match with umpire Charlie Williams while arguing a foul ball call.