J.J. McCarthy, after missing five games, threw for two TDs and ran for another in a key NFC North win in Detroit.