Only Manchester City and Brighton have won their opening two games, but the Gunners join them on six points after a narrow success at Selhurst Park.
In a closely fought game, captain Odegaard slotted home a second-half free-kick before the visitors held on for the last quarter of the game after Takehiro Tomiyasu was sent off.
The defender was the only change to Mikel Arteta’s starting XI from their opening day win against Nottingham Forest, replacing the injured Jurrien Timber at left-back – but he will now be banned for Saturday’s visit of Fulham after a controversial sending-off here.
Palace – unchanged from their own win at Sheffield United a week ago – were quick out of the blocks, Aaron Ramsdale making a low stop to keep out Eberechi Eze’s drive as the hosts gathered their heads.
Cheick Doucoure then looked to speculate as Arsenal struggled to get a foothold in the proceedings.
The visitors gradually began to see more of the ball and Eddie Nketiah was unlucky when his shot came back off the post after beating Sam Johnstone in the Palace goal.
Both sides had good chances as the game developed, with Jordan Ayew almost capitalizing on William Saliba’s poor touch, but the French defender made amends with a fine, last-ditch effort.
Arsenal went at the other end and Nketiah wasted a golden opportunity when he tried – and failed – to lob a deft lob past Johnstone from close range.
Odegaard was next to come close to breaking the deadlock for Arteta’s side, his curling strike from outside tipped over Johnstone.
Arsenal finally took the lead soon after the restart, Gabriel Martinelli’s quick free-kick was headed in by Nketiah, who went to ground under pressure from a sliding Johnstone.
Referee David Coote pointed to the spot and the decision survived VAR review due to Thomas Partey’s set-up foul, with Odegaard making no mistake to send Johnstone the wrong way from 12 yards.
Coote was to make further controversial calls shortly afterwards, yellow carding Tomiyasa for wasting time on a throw-in before sending off the Japan full-back seven minutes later for a fine foul on Ayew.
Arteta responded by introducing Gabriel Magalhaes for Martinelli, while Jorginho replaced Nketiah as Arsenal closed the deal in the closing stages.
Jakub Kiwior and fit-again Oleksandr Zinchenko added even more steel to the defensive unit as Odegaard and Bukayo Saka got in the way.
It proved to be enough to keep Palace at bay, Arsenal’s rearguard screaming and celebrating every challenge and clearance to secure victory.