A suit jacket is made of fine material, like a smooth wool. It matches the pants (or skirt) in both color and material, and is meant to be worn with the matching pants.
A blazer is cut similarly to a suit jacket, but it is typically made of a navy blue or brightly colored fabric and has brass buttons and a patch pocket. Blazers were originally emblazoned with a school or club crest, so if it looks like you're studying English literature or learning to sail, it's probably a blazer.
A sport coat is made of tweed and has flapped pockets. It got its name because it was originally worn for sports like fox hunting, so if it looks like you just emerged from the woods behind Downton Abbey, it's probably a sport coat. I rarely see women's sport coats referred to as such (they're almost always called "blazers"), but the term isn't gender-specific.
If it seems nit-picky, it kind of is. Here are the hard-and-fast rules:
- A suit jacket ought to be worn with its matching bottoms.
- If there are no matching bottoms, you can probably call it either a blazer or sport coat...
- ...unless it has brass buttons. Then, it's definitely a blazer.