Yes, it's grammatically correct. It's a bit of a strange sentence, because it sounds like the problem with this guy is that his name is Jonathan. In some contexts it would make sense, though. The grammar is fine.
In more casual speech, it would be common to say "showed up" instead of "came." "The party was going well until Jonathan showed up."
For more formal speech, "arrived" is better. "The party was going well until Jonathan arrived."