Introduce them on neutral turf away from home and in a location neither dog knows to avoid territorial problems. Introduce them outdoors if possible, or in a large indoor area. Pick up all pet toys and do not introduce the dogs at feeding time.
Put the dogs on leashes and be pre parted to separate them. Do not try to hold the dogs yourself. This takes at least two people. If you are alone, you can introduce the new dog in a neutral location, behind a baby gate or screen door, so they can see each other but not touch. If either dogs shows signs of wanting to fight, spray the dog with water or have a can with coins inside to shake at the dog. Do not allow fighting. You are the pack leader. Praise the dogs for acceptable behavior. Give more attention to the resident dog than the new dog, establishing the new dog as #2 in the pack. But if you are comfortable with their reactions to each other, take them home together.
If you are introducing a puppy to an adult dog, hold the puppy, bring the resident dog to the puppy to sniff him/her. When you are comfortable, put the puppy down to walk around. If you are not comfortable with the resident dog’s reaction, put the puppy in a crate or behind a baby gate until the resident dog’s reaction is positive. Don’t worry that the resident dog will intentionally hurt the puppy, a growl or snap is just meant to lay the ground rules.
Do not leave the dogs unsupervised for at least one week. Keep them separated when you leave home.
Provide separate feeding, bed and toy areas.
Continue to show the resident dog that he comes first, giving him lots of attention, treats, etc. This will establish that the newcomer is #2 in the “pack order”, helping to prevent future confrontations.
It can take time. It may take several weeks for the dogs to get used to each other, but you should see improvement every week. Allow a little aggression between the dogs, but not growling which can lead to a fight.