Old English forgiefan "give, grant, allow; forgive," also "to give up" and "to give in marriage;" from for- "completely" + giefan "give" (see give).
The modern sense of "to give up desire or power to punish" is from use of the compound as a Germanic loan-translation of Latin perdonare (cf. Old Saxon fargeban, Dutch vergeven, German vergeben, Gothic fragiban; see pardon). Related: Forgave; forgiven; forgiving.