Which of the two options (if any) sounds more idiomatic?
I wanted to keep / have a souvenir of that special day.
It would depend on whether the desire you are talking about was your initial desire to obtain a souvenir (for example, you went on vacation and bought a souvenir to take home) or some later decision to retain something that had past memories for you (for example, a mundane object that you might have otherwise thrown away but perhaps it now reminds you of something more meaningful). In your example, it sounds like the decision to obtain a souvenir was made on the day because the day was special.
In this context, it sounds better with have for at least 2 reasons. Firstly because to 'keep' something means to retain possession of it, so if you're talking about the point at which you first acquired something, you haven't actually kept it for any time yet. Secondly, the idea of 'keeping' something is implied in the word souvenir anyway. Sometime a souvenir is called a keepsake.