The England Under-21 striker, tipped to feature in the senior squad for the friendly with France later this month, had started the day on the front pages following allegations about his private life.
However, under the close eye of watching England boss Fabio Capello, the Newcastle number nine headed in what proved to be the winner at the end of the first half.
Although Arsenal twice hit the woodwork through Cesc Fabregas’ deflected free-kick and Theo Walcott, the Gunners were well below par and their miserable afternoon was compounded by the dismissal of centre-back Laurent Koscielny in stoppage time for a professional foul.
Gunners boss Arsene Wenger had also found his personal life under the media spotlight ahead of this fixture.
Nevertheless, the French coach will have expected nothing but 100% focus from his team, whom he felt were complacent when throwing away an early lead in their midweek European tie.
After an initial spell of pressure from Newcastle, Arsenal slowly saw built momentum.
Walcott chased a long pass upfield which was smothered by keeper Tim Krul, before Marouane Chamakh just failed to collect Alex Song’s pass at the edge of a crowded penalty area.
Newcastle had been thumped 4-0 by Arsenal in the Carling Cup clash at St James Park a fortnight ago, but went into this game buoyed by their thrashing of local rivals Sunderland.
Arsenal – looking to keep the pressure on leaders Chelsea, who play at Liverpool later this afternoon – almost took the lead on 11 minutes when Fabregas’ deflected 22-yard free-kick crashed against the crossbar after ricocheting off the wall.
The Gunners captain was then played into the right side of the penalty area, but was quickly crowded out before Walcott’s chip across the six-yard box was headed behind.
Arsenal, though, were left frustrated as Newcastle broke up play well, and were awarded a few free-kicks which were delivered direct into the penalty area.
The atmosphere went a bit flat as half-time approached, with Arsenal not really able to get near their usual fluidity.
When Fabregas was slipped in down the right by Samir Nasri, his shot at the near post was blocked into the sidenetting as the home fans continued to grow restless.
The Emirates Stadium, though, almost erupted when Nasri’s drive appeared to be heading for the top corner – only for Krul to pull-off a fine one-handed save.
Newcastle took a shock lead on the stroke of half-time when a deep free-kick into the Arsenal box from Joey Barton was met by Carroll, who got there ahead of Lukasz Fabianski to nod the visitors in front.
At the start of the second half, Arsenal hit the woodwork again when Walcott darted into the right side of the area from Jack Wilshere’s pass and lashed in an angled drive, which crashed against the underside of the bar with Krul beaten.
Arsenal continued to press, with Song cutting the ball back across the six-yard box, but Chamakh was unable to connect.
With 35 minutes left, Wenger made a change when he sent on Andrey Arshavin to replace Nasri and then introduced Robin van Persie for the Dutchman’s first appearance since the end of August after an ankle injury.
Van Persie’s first touch was a lovely backheel down the left, with Gael Clichy then delivering a low cross which was just too far ahead of Arshavin.
Newcastle, though, continued to show little regard for reputation as they looked to hold possession in a match which started to become somewhat scrappy as Wilshere was left in a heap following a challenge from Barton, but the referee took no action before defender Mike Williamson send a header wide from a corner.
Wenger’s last throw of the dice came with 17 minutes left when Nicklas Bendtner replaced Wilshere.
Arshavin almost weaved his way clear, but Fabricio Coloccini made a saving tackle in the six-yard box.
Arsenal had pace in abundance up front now, but Newcastle continued to hold their ground.
Fabregas’ diving header was straight at the keeper following Arshavin’s run as Wenger looked to the heavens.
Arsenal threw long balls forwards, but Newcastle were not to be denied a shock victory as the hosts finished with 10 men after centre-half Koscielny was shown a straight red card for hauling down substitute Nile Ranger.