The Crew (12-9-8) took the lead when a Union defender deflected Harrison Afful's cross from the right flank to Kamara, who finished with a header from near the far post. They were in nearly the same places 5 minutes later when Kamara tapped in Afful's low untouched cross with his right foot his MLS-leading 20th goal of the season.
The Union (8-15-6), who entered the game a point out of an Eastern Conference playoff position, pressed their attack in the second half, creating many chances, including C.J. Sapong's 66th-minute goal.
But Crew goalkeeper Steve Clark had five saves after the break to preserve the win.