Captain Jamie Dwyer gave Australia an early lead, before the Spanish stunned the Kookaburras with two goals in three minutes just before the half hour mark.
Dwyer, a four-time recipient of the FIH world player of the year award, restored equilibrium seven minutes into the second half.
With five minutes to go, Australia converted a penalty corner through Desmond Abbott to clinch victory.
Dwyer's two goals lifted him among a group of six Australians who have scored at least 20 goals in Champion's Trophy matches and took him past current Australian coach Ric Charlesworth, who scored 18 career goals at the tournament. Australia has won 16 of 17 Champions Trophy matches in which Dwyer has scored.
Yesterday's win was Australia's fourth in succession over Spain and improved their record against them at Champion's Trophy tournaments to 15-3, with five draws.
The second match of the day pitted Great Britain against Pakistan. It was an even contest throughout, and some outstanding goalkeeping from both sides, particularly British custodian James Fair, made for an exciting contest.
Pakistan took a 1-0 lead to halftime after Muhammad Imran expertly dispatched a penalty corner flick, but Britain drew level when 34-year-old Mark Pearn scored his first Champion's Trophy goal in 10 years.
Simon Mantell volleyed home a penalty corner with five minutes remaining to secure a 2-1 win and keep Britain level on points with Australia in pool A.
Pakistan's Shakeel Abbasi caught the eye, not just for his flowing pony tail but also for some exceptional stick work in the area, and he showed outstanding dexterity at times.
In the day's final match, the Netherlands cruised to a 2-0 victory over South Korea after leading 1-0 at the break.
Today promises some of the best match-ups of the tournament, with Australia taking on Great Britain (12.05pm) and Germany facing the Netherlands (6.05pm). New Zealand has a must-win match versus Korea at 4.05pm, while Pakistan face Spain in the 2.05pm match.
Australia 3 (Dwyer 10, 42, Abbott 65) Spain 2 (Dabanch 25, Tubau 27). Halftime: 1-2.
Great Britain 2 (Pearn 45, Mantell 65) Pakistan 1 (Imran 31). Halftime 1-1.
Netherlands 2 (Taekema 9, Bakker 54) South Korea 0. Halftime: 1-0.