give ~ a run for one's money の意味と使い方
「give ~ a run for one's money」の意味は「~と激しく競う」や「~に匹敵する」です。
Masato gave the champion a run for his money.
マサトはチャンピオンと激しく争った。
注意点は、チャンピオンに勝ったとは言っていません。
He gave Bolt a run for his money.
彼はウサイン・ボルトと激しく争った。
この文は、ボルトに勝てはせずとも、ボルトの記録に迫ったことになります。
ニュアンスと語源
ニュアンス的には、日本語の「張り合う」「いい勝負をする」「勝るとも劣らない」などになり、そこから「匹敵する」という意味が出てきます。
また、文脈によっては「手こずらせる」や「対抗馬になる」と訳される場合もあります。
ちなみに、語源は謎のようです。
『ハリー・ポッターとアズカバンの囚人』の例文

I think you'd have given your father a run for his money.
驚いたよ 君の力は お父さんも顔負けだろう(日本語字幕)
ハリーがルーピン先生に「エクスペクト・パトローナム」を教わるシーンです。
ここでは「ハリーはハリーの父親に匹敵する」という意味になります。
その他の例文
She'll give those professional players a run for their money.
彼女はそのプロたちに匹敵するだろう。
He’ll give you a run for your money.
彼はあなたといい勝負をするだろう。
My kids gave me a run for my money today.
今日、子供たちが私を手こずらせた(=大変だった)。
[This ancient dinosaur would give today's blue whale a run for its money]
Australia's largest dinosaur and more top space and science stories - CNN
[Bas Dost consistently gives Messi and Ronaldo a run for their money in terms of domestic goals]
Bas Dost consistently gives Messi and Ronaldo a run for their money in terms of domestic goals, so why isn't he a sure starter for the Netherlands?
— Goal (@goal) March 21, 2018
Words by @PeterMcVitie https://t.co/LkvMEvBjQv pic.twitter.com/PmiZvROjI7
まとめ
・「give ~ a run for one's money」の意味は「~と激しく競う」や「~に匹敵する」
・「勝ったわけではない」点に注意