I would actually say that neither should be used in this case. The past tense of to wreak is wrought. So, IMHO the correct term would be that "The floods have wrought havoc".
What would follow 'have' here is not the past tense but the past participle. 'Wrought' is the archaic past tense and past participle of 'work' not 'wreak'. So your suggestion is the wrong form of the wrong verb. As 'wrought' is also the past participle of 'work', 'have wrought' would work as the archaic form of that verb, though not the one in the question.