give someone or something a (good) run for their money provide someone or something with challenging competition or opposition.
2013The Stage The slapstick fun of Dromgoole's production gives Noises Off a run for its money in terms of comic inventiveness.