It was the home side who made the early running with new signing Keith Treacy featuring prominently on his full Barnsley debut.
Treacy tried a low shot from distance inside the opening minute which forced keeper Ben Garratt down low to his left to save.
Treacy then fired in a free-kick which was spilled by Garratt, but George Ray was on hand to clear the loose ball.
Barnsley's Conor Hourihane also volleyed wide.
Tootle set up a great chance for Waters, who chipped the ball into the hands of keeper Adam Davies.
Waters scored a 32nd-minute opener, sliding in to turn the ball home from Liam Nolan's attempted shot, which was going wide.
Sam Winnall spurned a couple of great chances to equalise before Tootle added a second for Crewe, drilling a low shot past Davies after receiving a neat lay-off from Waters six minutes from the end.