Premier League: Aston Villa 1 Stoke 2
Sherwood saw his side remain in the bottom three after Ron Vlaar hauled down Moses, with the forward coolly converting from 12 yards after the defender had seen red.
Scott Sinclair was able to take one of the few chances the home side created as he headed in his first top-flight goal since August 2012 after 20 minutes, but Stoke restored parity before the break.
Mame Biram Diouf met Stephen Ireland's cross seven yards from goal and placed his header past Brad Guzan on the goalkeeper's 100th successive league start.
A second half devoid of quality and chances failed to lift the atmosphere inside Villa Park, with Stoke slightly edging proceedings before Moses' winner.
Villa drop a place in the table after the defeat, while Stoke remain mid-table.
Despite the presence of their new manager Villa made a cautious start, with Stoke creating the opening effort on goal in the 16th minute, Ireland – on his Stoke return – meeting Marc Wilson's cross but failing to stretch Guzan.
The deadlock was broken four minutes later as Sinclair netted the opening goal, the on-loan forward getting in between two defenders to head home Fabian Delph's cross.
Villa enjoyed a spell of dominance after that as Stoke's defence began to wobble, but they failed to capitalise and slowly the visitors came back into it, with Moses testing Guzan from the edge of the area.
Kieran Richardson – one of four Villa changes – saw his afternoon come to a premature end three minutes before the break due to injury, and it cost the hosts as his replacement Aly Cissokho failed to stop an Ireland cross in the final minute of the half.
The former Villa man produced a precise delivery that Diouf rose to head in under pressure from Vlaar and Ciaran Clark.
Neither side was able to find any rhythm after the restart, which resulted in a scrappy affair, fouls aplenty and a couple of yellow cards from referee Roger East.
Stoke posed more of a threat on the counter-attack with the pace of Diouf and Moses, while Villa introduced Andreas Weimann to spark them into life.
The Austrian's introduction failed to have the desired reaction, though, and although Villa were grateful to Guzan's late save to deny Jonathan Walters' back-post volley they could not hold onto the point.
A mistake by Vlaar gave Moses a run on goal, the Netherlands international brought him down and the Stoke man ensured rubbed salt in the wounds of a Villa side now winless in 11 league games.