Normal maps tell the renderer what parts of a texture have depth. The renderer can use this information to change the way lights and shadows are drawn onto the object, giving a flat surface the illusion of depth.
This method uses the default Principled BSDF shader provided by Blender. To begin, select your object. Click the materials property tab and select new.
Next select the little circle icon next to base color and select image texture from the options. This will automatically add an image texture node to your shader work flow. Click the open button that appears under the base color and select the desired texture from the file browser. This is the base texture for the object. I'll add the normal map next.
Click the shading tab to show the shader work flow. The bottom portion of the workflow should look like this. Here you can see the image texture I added previously is present in my shader work flow.
I'm going to add two more nodes to the shader work flow. I'll start with another image texture which I'll use for the normal map. To add a node from the shader window select add->texture->image texture. You can also press shift+a while your mouse is in the shader window to bring up the node menu.
Add a normal map node by selecting add->vector->normal map.
Next I need to arrange the nodes in the flow. I'm going to place the image texture node at the bottom to the left of the BSDF node and place the normal map node between the two. You can drag the nodes by left clicking the top bar, and while holding the button, drag the mouse just like you would any other window.
With the nodes in place I'll add the final touches to the shader. Start by clicking open under the new image texture and selecting the normal map. Next connect the color of the image texture node to the color of the normal map node. You can do this by left clicking the dot, and while holding the button, drag the line to the color dot on the normal map.
Finally connect the normal dot from the normal map node to the normal dot on the BSDF shader node. Your final result should look like this.
The strength setting under the normal map node is used to adjust the amount of the effect applied. Here are before and after pictures showing the difference a normal map makes.
From here you can adjust the rest of the settings on the BSDF shader to your liking. I suggest adjusting the specular amount. The default setting is very high and gives most textures a glossy almost plastic look.