Is there any way to do a bevel similar to that on my screenshot without the artifact (the square appearing) with smooth shading? I see the result is due to all the vertices on the face created by the bevel, but I don't know the best way to solve this. All help appreciated.
If you want to keep your object low-poly, if you smooth it it will try to smooth the 90° angles and it will give what you see. A trick is to use Auto-Smooth, i.e. ask Blender to only smooth the lower angles: Select your object in Object mode, press W > Shading Smooth, then go in the Properties panel > Object Data > Normals, enable Auto-Smooth and keep a low angle like for example 30°.
Note that the general shape will stay angular, if you don't want that you'll need to give your object a Subdivision Surface modifier, and add some edge loops to sharp the angles.