A deserved victory kept them four points behind leaders Chelsea, who won 3-0 at Everton earlier.
Alli put Spurs ahead in the 56th minute when he followed up after Christian Eriksen's shot was saved. Two minutes later Kane went down in the penalty area under Gabriel's challenge and got up to convert the penalty.
Tottenham's victory in Arsene Wenger's 50th North London derby as Arsenal manager ensured Spurs will finish above their neighbours for the first time in 22 years.
James Olley assesses the key talking points for Arsenal...
Wenger’s future is under the microscope once again
Wenger’s flat-batting of questions over his future had helped quieten speculation in recent weeks, but losing further ground in the race for a top-four finish while surrendering north London dominance to Tottenham will reopen the debate.
This 2-0 win confirmed Spurs will finish above Arsenal for the first time in 22 years, a fact Wenger’s detractors will use to argue he should not be given a contract extension beyond the end of this season.
Aside from local bragging rights, results elsewhere this weekend limit the damage of this defeat to an extent and there is still an FA Cup Final to come but if Wenger does stay on – as he would ideally like to do – the board’s approval would represent a huge leap of faith he can return Arsenal to the pinnacle of the game.
Wenger’s proud derby record takes a blow
This was Wenger’s 50th derby and only his ninth defeat, which serves as another reminder of both his remarkable endurance and the supremacy Arsenal have had over their bitter north London rivals for so many years.
However, this loss will have been particularly painful as it will only reinforce the view that Spurs have arguably not just caught up with the Gunners but have now overtaken them.
The table suggests as much in terms of this season and with a new stadium under construction, Spurs have a forward momentum which is awkwardly juxtaposed with Arsenal’s current malaise.
Things can shift again quickly, of course, but Wenger will need them to.
Giroud seems unsuited by 3-4-3
Wenger opted for Giroud to spearhead the attack but with Arsenal primarily playing on the break, his lack of pace often slowed down the visitors’ breakaways.
Giroud has one Premier League goal to his name since February 4 and Wenger’s faith in his fellow Frenchman is admirable but looks increasingly misguided.
Danny Welbeck was introduced – for Granit Xhaka – with 26 minutes left but by that stage the damage had already been done.
With Theo Walcott failing to impress in a central role against Leicester, the case for Welbeck to start against his former club Manchester United next weekend is strong.
Cech is blameless in defeat
Cech’s form has been the subject of understated debate in recent weeks, especially given Arsenal are already eyeing Sunderland goalkeeper Jordan Pickford (among others) as a long-term replacement, but he kept the score respectable here.
Among the highlights were two excellent second-half saves from Victor Wanyama, Jan Vertonghen and Harry Kane as Arsenal were overrun and while there weren’t many in a red shirt who could be content with their afternoon’s work, Cech was blameless.
It is not a huge stretch to suggest he was a genuine contender for man of the match.
Gibbs is in from the cold
Kieran Gibbs’ return to action against Leicester City last Wednesday after six weeks watching on from the sidelines felt like a simple exercise in rotation after Arsenal played 120 minutes against Manchester City in their FA Cup semi-final.
Yet he featured from the outset once again against Tottenham on the left side of the Gunners’ 3-4-3 system and helped create a couple of threatening moments, particularly in the first-half.
Shkodran Mustafi is likely to miss next weekend’s visit of Manchester United which means Nacho Monreal could once again play at centre-back in place of Rob Holding – if so, Gibbs may get a third consecutive game – a feat he last achieved in November.