The closest things we have to dragons IRL are crocodiles and whales. Thing is, dragons can fly, breathe fire and have really tough armor. So, you'd need to take an approach similar to whaling or hunting crocodiles, just with those other factors in mind.
Depending on who's giving the rendition, dragon fire is either hot enough to melt stone or cool enough to hide from behind a shield. That's a lot of variance, but we'll assume it's somewhere in between; hot enough to set rope, dry logs, etc. on fire and heat metal paneling through. So, for adequate protection, you'll want to be shielded by something substantial and hard to set on fire. Soaking wet chamois and wet wool laid thick over a wooden frame might work pretty well, if you're using siege engines to get right up close to the thing.
Next, you'll want to tire it out. If a dragon doesn't like its chances of losing, there's a good chance it will fly away; to minimize that factor, you'll need to disable its wings and encumber it. If it tries to get close to bite past your fireproof armor, have the engine's crew stab its wings with long pikes; while you do that, position ballistas and launch harpoons into its hide. They don't need to hurt it, they just need to strike deep enough to anchor themselves. The bolts could be shaped like Roman pilum, with a long flexible metal tip that warps on impact and impedes armor. For even better results, try to get above the dragon (get it under a cliff, for instance) and drop harpoons with weighted chains on it. That will get the son of a bitch good and tired.
Now, you just run the thing ragged. Assuming the dragon isn't sentient (or maybe even if it is), it will likely panic and try to escape. Chase it on horseback, harassing it from a safe distance with slings or guns, while it exhausts itself trying to take off.
(to be continued)