run for (one's) money
1. A prolonged period of success. The slot machine gave me a run for my money, but, in the end, the casino was the only real winner.
2. A challenge. Sure, Sheila still became valedictorian, but Tim really gave her a run for her money!