Manchester United were denied a point against West Ham after a dramatic late penalty.