Old English slean "to smite, strike, beat," also "to kill with a weapon, slaughter" (class VI strong verb; past tense sloh, slog, past participle slagen), from Proto-Germanic *slahan, from root *slog- "to hit" (cf. Old Norse and Old Frisian sla, Danish slaa, Middle Dutch slaen, Dutch slaan, Old High German slahan, German schlagen, Gothic slahan "to strike"). The Germanic words are from PIE root *slak- "to strike" (cf. Middle Irish past participle slactha "struck," slacc "sword").
Modern German cognate schlagen maintains the original sense of "to strike." Meaning "overwhelm with delight" (mid-14c.) preserves one of the wide range of meanings the word once had, including, in Old English, "stamp (coins); forge (weapons); throw, cast; pitch (a tent), to sting (of a snake); to dash, rush, come quickly; play (the harp); gain by conquest."