Both sides were level at halftime but the Hammers skipper struck twice in quick succession after the break, as Sam Allardyce's side earned an important win in the fight against relegation.
West Ham has now lifted itself out of the relegation zone afer earning seven points from the last three games.
Villa, meanwhile, has won just one of its last eight home matches in all competitions and was twice denied by the frame of the goal as Marc Albrighton and Christian Benteke struck the woodwork.
The Hammers had only scored two goals in their previous six visits to Villa Park heading into Saturday's game and their chances of improving that statistic appeared diminished by the absence of the banned Andy Carroll, although Nolan filled the void as talisman.
The 31-year-old midfielder has now scored seven goals against Villa – more than he has against any other Premier League side – and has netted four times in his last two appearances.
Gabby Agbonlahor returned to Paul Lambert's Villa XI following injury, while Allardyce replaced suspended striker Carroll with Carlton Cole, who spent the 2004-05 season on loan at Villa.
It was another former Villa player who had the first half's best chance. Matt Jarvis sprung the home side's offside trap and slid the ball across goal for Stewart Downing, who somehow failed to connect when he would have had a tap-in.
Downing's composure deserted him again when he was well placed, before Jarvis fired the ball into the side-netting from close range.
Villa, however, offered very little in the first 40 minutes, with Benteke's touch letting him down when he was through on goal, though Ashley Westwood's fine volley went narrowly wide just before the break.
It took West Ham just 18 seconds to take the lead after the restart. Downing tricked his way past Ryan Bertrand down the right and crossed for Nolan, whose cheeky flick took a deflection and looped over goalkeeper Brad Guzan.
Nolan made it 2-0 on 48 minutes. The midfielder did superbly to rob Fabian Delph of possession on the edge of the West Ham box before carrying the ball into the area and slotting calmly past Guzan.
Albrighton was quickly sent on by Lambert and the winger smashed the ball against the post with a vicious 66th-minute strike. The rebound struck Adrian and went out for a corner, which came to nothing.
Substitute Albrighton then crossed for Benteke, whose first-time attempt hit the crossbar.
West Ham was camped inside the final third for the remainder of the game and had to defend a series of corners. The club held on, however, for a morale-boosting victory - and one that could prove vital come the end of the season.