O'Ward pipped Chip Ganassi Racing's reigning champion Palou to the top spot by just 0.029s to continue the fine form he showed by winning last time out at Barber Motorsports Park with a 1m09.783s lap.
He was just 0.058s quicker than Colton Herta (Andretti Autosport) in third, with defending Indy GP winner Rinus VeeKay fourth for Ed Carpenter Racing 0.142s adrift.
After early red flags caused by Dalton Kellett and Jimmie Johnson finding the gravel, Herta had set the fastest time on primaries.
Rahal Letterman Lanigan's Jack Harvey was the first to set a time on the Firestone softer alternate tyres, lapping the 2.439-mile track in 1min10.097s.
Then O'Ward's team-mate Felix Rosenqvist shaved 0.042s off that to claim top spot for not even half a minute before VeeKay went faster again with a 1m09.926s lap.
VeeKay's hold on top spot was also brief, as Palou and O’Ward delivered their best laps of the weekend so far to take the top two slots.
Their times remained unbeaten to the end of the session, with Herta moving into third late on ahead of VeeKay - who had languished down in 21st after FP1.
RLL's Christian Lundgaard set the fifth-quickest time at the scene of his debut in last year's second visit to the Indy road course, when he qualified an excellent fourth.
Romain Grosjean, who took his first IndyCar pole at last year's Indy GP for Dale Coyne's team, was the second-quickest of the Andretti contingent in sixth ahead of VeeKay's team-mate Conor Daly and Rosenqvist.
Simon Pagenaud drove his Meyer Shank Racing entry into ninth ahead of former Penske team-mate Will Power, who has five wins and five pole positions on the Indianapolis road course. He completed the top 10, a scant 0.007s ahead of team-mate Scott McLaughlin.
The earlier session, topped by Palou, was red-flagged with just over 90 seconds remaining of the allotted 45 minutes when Pagenaud's team-mate Helio Castroneves spun at Turn 13.
When the session restarted, it looked unlikely that anyone could get their tyres up to temperature soon enough to make a difference to the fastest times, but Palou and team-mate Marcus Ericsson strapped on new tyres to snatch the first and sixth fastest times.
That allowed Palou to displace impressive rookie Callum Ilott (Juncos-Holinger), the Briton using the extra set of tyres allowed for rookies in the opening session to sneak ahead of Power by 0.068s with three minutes to go for what was then the top spot.
The Briton lapped the 2.439-mile 14-turn road course in 1m10.459s, a time he failed to improve on in the later session where he ended up 19th, just ahead of six-time champion Scott Dixon (Ganassi).
Power ended the opening session third ahead of Graham Rahal (RLL), Rosenqvist and Ericsson.
Two-time Indianapolis 500 winner Juan Pablo Montoya, who will make his first road course IndyCar start since this event last year, ended the day 24th and 1.2s off the pace in the third Arrow McLaren SP entry.
Qualifying begins at 4.00pm local (Eastern) time.