The Netherlands was seeking its first win in four attempts under Frank de Boer but got off to a bad start at the Johan Cruijff ArenA.
Alvaro Morata marked his return to the Spain side with an assist for Canales' well-taken opener but Van de Beek added to his goal against Italy last month to level matters.
Memphis Depay should have won the game for De Boer's men in a second half that saw Sergio Ramos come on to earn his 176th Spain cap and equal the European record held by Italian great Gianluigi Buffon.
The host was already without captain Virgil van Dijk and lost fellow centre-back Nathan Ake to an apparent hamstring injury inside the opening six minutes.
That stoppage did little to halt Spain's flow and they took the lead through Canales' calm finish past Marco Bizot after being played in by in-form striker Morata.
Luuk de Jong had a weak penalty appeal rejected and then tested debutant Unai Simon, while Bizot was equal to Morata's edge-of-the-box effort at the opposite end.
But Van de Beek drew the Netherlands level 105 seconds into the second half as he ghosted in to meet Owen Wijndal's left-sided cross and drilled the ball home.
Koke, another Spain player brought in from the cold to captain the side, volleyed over a glorious chance on the hour mark and Hector Bellerin's low drive was pushed to safety.
An even bigger chance fell the way of Depay, who had time to get the ball out of his feet in the Spain box but could not squeeze the shot past Simon.
Ramos was brought on in the final stages for his landmark cap but the game ultimately petered out.