Liverpool came from behind to record their first league win of the season.
Agger scored his first goal for Liverpool
Keeper Jose Reina was badly at fault for West Ham's goal, misjudging Bobby Zamora's cross and compounding his error by pushing the ball into the net.
But Liverpool recovered to go in at the break 2-1 ahead, equalising through defender Daniel Agger's superb shot.
Steven Gerrard and Luis Garcia then combined to set up a goal for Crouch, while late on Lee Bowyer should have equalised only to hit the post.
The game marked the first time the two clubs had met since Liverpool's thrilling FA Cup win as well as being the day the Kop celebrated its 100th birthday.
Reina endured a shaky game in May's final before redeeming himself in the penalty shoot-out and Liverpool's Spanish goalkeeper badly miscalulated as Zamora prepared to cross.
Reina moved away from his line anticipating the cross but Zamora's effort veered towards the goal, and the Spaniard in attempting to recover, could only push the ball into the net.
West Ham were quickly back on attack and Marlon Harewood went desperately close with a shot after Yossi Benayoun's through pass.
Liverpool had looked much the better side before Reina's misjudgment and Gerrard and Garcia might have done better with shots from good positions.
Fabio Aurelio's dipping free-kick then caused some anxiety for Carroll before Paul Konchesky headed off the line.
Crouch also claimed John Paintsil had grabbed hold of him as the Liverpool striker tried to reach a Jermaine Pennant cross.
But Zamora's goal knocked Liverpool out of their stride and despite plenty of possession the home side struggled to make use of it.
Given Agger has never scored for Liverpool his goal was well worth waiting for.
The 21-year-old Dane picked up the ball in the centre circle from a Xabi Alonso pass and as he ran towards the West Ham goal the visitors' defence backed off.
As they did so Agger proceeded to unleash an unstoppable shot past West Ham goalkeeper Roy Carroll.
That goal rejuvenated Liverpool and three minutes later Crouch added a second.
A combination between Gerrard and Garcia set Crouch free and after rounding Carroll the England striker struck a fierce shot into the net.
Early in the second half Crouch was replaced by Liverpool's new £10m signing Dirk Kuyt.
The Dutch international made an immediate impression, trying his luck with a shot and a header and then trying to release Gerrard with a clever dummy.
Kuyt's delicate flick set up Bellamy for a goal, but the Welsh international was ruled just offside.
Kuyt continued to lead Liverpool's with plenty of vim and he drew a fine one-handed save from Carroll.
Benayoun provided West Ham's best attacking threat in the second-half, troubling Liverpool's defence with a shot and mazy dribble.
And Bowyer came desperately close to equalising for West Ham as they sought to maintain their unbeaten start to the season when his scuffed shot clipped the post on 79 minutes.
Reina also did well to save substitute Carlton Cole's close-range effort.
Liverpool boss Rafael Benitez welcomes the selection dilemma his in-form strikers are posing:
"Dirk worked hard and created a lot of chances and Crouch was the same.
"I like to have these problems. As a manager you prefer to have these problems."
West Ham boss Alan Pardew:
"I've got to reflect on the whole performance.
"We've come here against one of the real contenders for the title, given a real good account of ourselves and yet we have come away with nothing.
"We still created those moments and feel aggrieved we haven't come away with anything."
Liverpool: Reina, Finnan, Hyypia, Agger, Aurelio, Pennant (Zenden 82), Alonso, Gerrard, Luis Garcia (Gonzalez 60), Bellamy, Crouch (Kuyt 52).
Subs Not Used: Dudek, Kromkamp.
Goals: Agger 42, Crouch 45.
West Ham: Carroll, Paintsil, Ferdinand, Gabbidon, Konchesky (Mears 81), Bowyer, Mullins, Reo-Coker (Sheringham 82), Benayoun, Zamora, Harewood (Cole 73).
Subs Not Used: Walker, Collins.
Goals: Zamora 12.
Ref: A Wiley (Staffordshire).