Mahomes completed 22 of 39 passes for 321 yards in the loss Sunday at Arrowhead Stadium in Kansas City, Mo. The Colts (3-2) held the Chiefs (4-1) to 36 rushing yards and won the time of possession battle 37:15 to 22:45.
The Chiefs' 13-point total was their fewest number of points since Nov. 26, 2017.
Mahomes also aggravated a previous left ankle injury during the setback and was favoring the ankle while limping on the field. The injury impacted Mahomes' ability to extend plays and drives for the Chiefs.
Marlon Mack ran for a game-high 132 yards on 29 carries for the Colts. Colts quarterback Jacoby Brissett completed 18 of 29 passes for 151 yards and an interception in the win.
"It means a lot, with people not believing in us," Mack told reporters. "They are a great team but we came in here and got the victory."
The Chiefs took a 3-0 lead on a 29-yard field goal from Harrison Butker on the game's opening drive. Indianapolis answered with an 11-play, 78-yard drive, capped off with a Brissett rushing score.
Kansas City responded with an 11-play, 75-yard scoring drive. Mahomes hooked up with Byron Pringle for a 27-yard touchdown to give the Chiefs a 10-7 advantage at the start of the second quarter.
The Colts got two field goals from Adam Vinatieri to take a 13-10 lead at halftime. Vinatieri added two more field goals in the second half. Butker hit a 36-yard field goal with 1:19 remaining.
"What a great win," Colts coach Frank Reich said. "What we said in the locker room was that the one emotion we weren't feeling was shocked. I can't even explain it. All week long we had that feeling."
The Chiefs host the Houston Texans at 1 p.m. Sunday at Arrowhead Stadium. The Colts host the Houston Texans at 1 p.m. EDT Oct. 20 at Lucas Oil Stadium in Indianapolis.
"In this league, no matter how good your offense is, you've got to be efficient," Mahomes said. "You've got to go out there and do things the right way. You can't just rely strictly on talent to score in this league."