O’Ward topped the 75-minute session around the 2.258-mile road course with a best lap of 1m06.4935s, ahead of points leader Alex Palou (Chip Ganassi Racing).
Josef Newgarden set the early pace with a lap of 1m07.3573s in his Chevrolet-powered Team Penske entry, but was then shaded by Arrow McLaren’s Felix Rosenqvist at 1m07.3249s and Will Power (Penske) slotted into P2 with 1m07.3407s.
Series dominator Palou jumped to the top with 1m07.3073s before Christian Lundgaard then vaulted ahead with 1m07.2834s for Rahal Letterman Lanigan Racing. The top six cars were covered by less than a tenth of a second at that point.
In the final 10 minutes, teams switched to the red alternate tyres from the harder blacks that they had been running exclusively. O’Ward took over at the top of the times with 1m06.4935s, while Palou took second with 1m06.8558s, ahead of CGR team-mate Marcus Ericsson.
Lundgaard improved his time to 1m07.0262s in fourth, but complained of a lack of front-end grip, with Andretti Autosport duo Kyle Kirkwood and Romain Grosjean next up.
Penske pair Newgarden and Scott McLaughlin finished the session in seventh and eighth respectively.
Helio Castroneves brought out the red flag when he spun his Meyer Shank Racing car on the exit of Turn 5 and needed his engine restarting. Grosjean suffered a grassy trip across the run-off at Turn 4 and continued, while third Arrow McLaren driver Alexander Rossi took wild rides at Turn 11 and Turn 1 on his way to ninth.
Colton Herta rounded out the top 10 for Andretti. Santino Ferrucci lost track time due to a throttle issue with his AJ Foyt Racing entry.
Second practice takes place at 9:45am local time on Saturday.