McGregor grew up in southern California and played baseball at El Segundo High School with future Hall of FamerGeorge Brett. McGregor was selected to the American League All-Star team in 1981. He won 20 games in 1980 and was solid in two postseasons with the Orioles in 1979 and 1983. McGregor sent the Orioles to the World Series by clinching the 1979 ALCS with a Game 4 shutout of the California Angels. He also pitched a complete game victory in Pittsburgh in Game 3 of the World Series that year and, despite taking the loss in Game 7 of that series, yielded only 2 runs in 8 innings to Willie Stargell and the eventual champion Pirates.
In the 1983 postseason, McGregor allowed only 2 runs in both Game 1 of the ALCS and Game 1 of the 1983 World Series, losing both games by scores of 2-1 to the White Sox and Phillies respectively. However, in the deciding Game 5 of the World Series, he pitched a complete game shutout as the Orioles defeated the Philadelphia Phillies, four games to one.
After the 1983 World Series, he remained a starting pitcher on the Orioles for the next five seasons. He made his final appearance on April 27, 1988.
He was named interim Orioles bullpen coach in late 2013 replacing Bill Castro who was promoted to pitching coach, however he did not return in 2014.