And here's the answer (credits go to cobbweb):
Hard reset your repository entirely
git reset --hard origin/master
What this does is update your repository to be in the same state as the remote repository. It will also set all of the commits (both the ones you want & the ones you don't want) as unpushed commits in the local branch. This is where you want to be.
Select only the commit that you want
git cherry-pick {{ SHA }}
where
{{SHA}}
is the commit ID for that thing. It will look something like 344dc098ffle90aaef3.Force the push and you should be good to go.
git push --force
If you'd like to know more on what's going on here run a google/SO search on each of the things we've done here: hard resets, cherry-picking, and force pushing. You'll find a wealth of information about them.
Note: This problem and solution involved working on just the master branch. Things might be a bit different if you are dealing with a situation with more than one branch.