But Houston added 20 unanswered points in the second, with three touchdowns.
The Chiefs led 24-23 entering the last quarter, but a touchdown from quarterback Deshaun Watson, scrambling over from three yards, secured the victory.
Watson threw for 280 yards and a touchdown while running for two more, emerging on top in the keenly-awaited quarterback battle against Patrick Mahomes, who finished with 273 yards and passed for three touchdowns.
The Seattle Seahawks edged the Cleveland Browns 32-28, with Chris Carson scoring a one-yard touchdown with three minutes left.
The Seahawks conceded touchdowns on Cleveland's first three possessions but stormed back, as mistakes crept into the Browns' game.
Russell Wilson threw two touchdown passes and ran for one score as Seattle moved to 5-1 for the season and improving to 3-0 on the road for the first time in 39 years.
The Pittsburgh Steelers held off the San Diego Chargers 24-17, having led 24-0.
The New Orleans Saints won 13-6 at the Jacksonville Jaguars after Teddy Bridgewater found Jared Cook for a four-yard touchdown early in the last quarter. New Orleans held on to improve to 4-0 without injured starting quarterback Drew Brees.
Elsewhere, the San Francisco 49ers won 20-7 at the Los Angeles Rams, the New York Jets edged the visiting Dallas Cowboys 24-22, the Minnesota Vikings won 38-20 at home to the Philadelphia Eagles and the Baltimore Ravens beat the visiting Cincinnati Bengals 23-17.
The Carolina Panthers won 37-26 over the Tampa Bay Buccaneers in London, the Washington Redskins won 17-16 at the Miami Dolphins, the Denver Broncos blanked the visiting Tennessee Titans 16-0 and the Arizona Cardinals won 34-33 in a thriller at home to to the Atlanta Falcons.