With just a point separating the sides going into the game, Sociedad got off to a bad start when Jose Antonio Verza put Almeria in front from the spot after five minutes at the Estadio de los Juegos Mediterraneos.
Imanol Agirretxe equalised with an unorthodox backwards header, before Tomer Hemed put Almeria in front again, but Sociedad were not to be undone and Canales capped off a fine move to earn The Royals a 2-2 draw early in the second half.
Almeria are now up to 15th, four points clear of the drop zone in a congested bottom half of the La Liga table, while Sociedad climb one place to 11th ahead of the weekend’s other fixtures.
The hosts, chasing a third win on the trot, looked every bit the form team as they surged in front after only five minutes.
Koulossa Thievy’s burst into the area was only ended when Sociedad goalkeeper Geronimo Rulli brought him down on the edge of the six-yard box.
Referee Carlos Velasco Carballo pointed to the spot immediately and showed Rulli, who had to receive treatment to his face after the collision, a yellow card.
After a long wait, Verza showed ice-cool composure to stroke it home low to Rulli’s right, with the Sociedad man getting nowhere near it.
Juan Ignacio Martinez’s side threatened to heap further problems on the visitors, with Wellington Silva unlucky his lung-busting run from halfway to the byline came to nothing.
But Moyes’ charges gradually grew into the contest, even if chances were at a premium, and levelled proceedings in the 27th minute.
Agirretxe, with his back to goal, rose above a crowd of bodies to flick Esteban Granero’s lofted free-kick into the net off the back of his head.
Almeria keeper Cuesta Julian got his hands to the slow-paced header, though, and he should have kept it out but was unable to get a strong enough connection on the floor.
The hosts restored their lead five minutes before the interval with Thievy again a nuisance, this time cutting in from the left and putting it on a plate for Hemed to sidefoot into the top corner from close range.
Canales, who also went close with a free-kick just after the break, gave Sociedad a second equaliser in the 48th minute as he rounded Julian and stroked home with style.
The 23-year-old forward latched on to Gonzalo Castro’s through ball, exposing a horribly pedestrian and dog-legged Almeria backline, to race clear and notch his third goal of the season.
As the second half wore on both sides pushed for the win, but neither did enough and honours even was a fair result.