The Morocco striker – a free transfer from Bordeaux – produced a neat finish to put the Premier League side ahead just before the break.
However, Arsene Wenger’s young Gunners were eventually pegged back when Pato nodded in a free-kick with 14 minutes left and on Sunday face the challenge of Celtic, who drew 2-2 against Lyon earlier.
As expected, Wenger had named a mixed starting XI, with new signings Chamakh – who netted his first Arsenal goal in the midweek win 4-0 over SC Neusiedl in Austria – and Laurent Koscielny making their first appearance at the Emirates Stadium.
Thomas Vermaelen was captain, standing in for Cesc Fabregas – the Barcelona target still on extended leave after the World Cup – while there were also chances for youngsters Jack Wilshere, Kieran Gibbs and Emmanuel Frimpong to impress ahead of the new season, which begins at Liverpool on August 15.
However, there was no place in the squad for Manuel Almunia, whose place as number one is in doubt, as Lukasz Fabianski started and fellow young Pole Wojciech Szczesny was on the bench.
There were a few jeers for AC Milan midfielder Mathieu Flamini, who left Arsenal in May 2008 after refusing to sign a new deal with the Gunners.
Andrey Arshavin flashed a volley wide after good work from Gibbs down the left flank.
Chamakh, a long-term target for Wenger, looked lively, and will be joined in the Arsenal frontline by Robin van Persie once the Holland striker returns from his extended break.
On 21 minutes, Vermaelen flicked Samir Nasri’s corner goalwards, but goalkeeper Christian Abbiati palmed the ball away.
At the other end, Fabianski was at full stretch to turn away a low, 25-yard strike from Flamini.
Chamakh gave the Emirates Stadium faithful what they wanted with a home debut goal on 36 minutes as the Moroccan striker coolly slotted the ball under the keeper after a burst of pace and precise pass from Arshavin.
It was almost 2-0 when Nasri burst down the right and cleverly cut back into the area before squaring to Tomas Rosicky, but the Czech midfielder’s point-blank effort was well saved by Abbiati.
Just before the break, AC Milan striker Pato went close when his curled effort flew just over,
Wenger made three changes at the start of the second half, which included the introduction of Theo Walcott – controversially left out of England’s ill-fated World Cup squad, but given a rousing reception by the Arsenal crowd.
A clever backheel from Chamakh put Arshavin into the left side of the penalty area, but his shot was saved at the near post and the rebound then hacked clear just as Wilshere looked to pounce on the loose ball.
Substitute Carlos Vela, who played at the World Cup for Mexico, was unfortunate not to extend Arsenal’s lead when he cut in from the left and curled the ball just wide.
AC Milan were level on 76 minutes when Pato got ahead of Vermaelen to glance Clarence Seedorf’s free-kick into the far corner.
Arsenal should have regained the lead – but youngster Mark Randall saw his close-range shot and follow-up effort both saved by Abbiati.
Gianluca Zambrotta almost won it for the Italians in the closing moments, but his 20-yard, angled drive hit the crossbar.