Originally signed as a free agent by the Dodgers in 1961, Billingham was groomed as a relief pitcher in the Los Angeles farm system, reaching the major leagues in 1968. Despite a good season (50 games, 3–0 record, eight saves, 2.14 ERA), the Dodgers left Billingham unprotected in the expansion draft and he was selected by the Montreal Expos, though he would never pitch for them. In January 1969, the Expos traded Donn Clendenon to the Houston Astros for Rusty Staub. Clendenon refused to report, and Billingham was later sent to Houston to complete the trade. In 1969, Billingham was again used as a reliever (52 games, 6–7 record, 4.25 ERA). In 1970 he was moved into the starting rotation (46 games, 24 starts), before becoming exclusively a starting pitcher in 1971.
1973 was Billingham's best season, going 19-10 with a career-best 3.04 ERA. He led the National League with 40 starts and seven shutouts and earned a berth on the National League All-Star team. He followed that with a 19-11 season in 1974.
On April 4, 1974, Billingham gave up Hank Aaron's 714th career home run, which tied Aaron with Babe Ruth for No. 1 on the all-time home run list at the time.
For his career, Billingham went 145–113 with a 3.83 ERA and 1,141 strikeouts in 2,2302⁄3 innings.